问题标签 [document-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - MongoDB 是线程安全的吗?
我在 Windows 上运行 MongoDB。我有 1 个或多个线程删除并重新创建一个集合。
使用mongo.exe
该show collections()
命令,我看到多个同名的集合(远超过 1,000 个同名的集合!)。
当我运行验证时:
我得到:
该size()
命令返回 0,并且find()
不返回任何内容。
我的问题是:MongoDB 线程安全吗?后续问题将类似于“我这样做是否正确(删除和重新创建)还是有更好的方法来刷新集合的全部内容?”
design-patterns - 文档数据库 - 非规范化引用 - 最佳实践
哟 - 这本身不是一个 ravendb 问题 - 这是另一个与一般文档数据库有关的设计问题。
所以我一直在使用 DenormalizedReference 很多,我刚刚想到在很多地方这使得 DDD 相当困难。
所以,比如说我有一个有子集合的对象:
这个子集合是在父类实例化时创建一个重载的构造函数,该构造函数接受一个List<SomeOtherType>
现在 - 在 ctor 中,我想从传入的 SomeOtherType 集合创建这个列表 - 这意味着我需要为每个 SomeOtherType 创建一个新的 SomeType。
如果不将 DocumentSession 传递到我的域中 - 我不会这样做 - 这不会起作用,因为当父 AR 被保存时,我们会丢失每个子对象的属性,除了 Id 和 Name
其他人是如何处理这个问题的?
c# - 在 RavenDB 的接口上使用多态查询
我有兴趣切换我们的应用程序(或其中的一部分)以使用带有 NHibernate 的 SQL Server 中的 RavenDB。
我在 Raven 中似乎找不到的关键特性是使用接口进行查询,例如:
在 NH 中,我可以在任何 ISearchable: 中搜索 Name 字段的内容QueryOver<ISearchable>()
。
我似乎在 Raven 中找不到这个,我错过了什么吗?我发现的最接近的是更改标识符前面的字符串部分,我不想这样做;Class1 和 Class2 的主要功能是不可搜索!
谢谢
斯图
design-patterns - 将存储库模式与文档数据库一起使用是否有意义?
我目前正在试验MongoDB。我正在从NHibernate/SQL思维模式转变,因此最初我实现了一个用于数据访问的存储库模式。
在我开始使用嵌套文档之前,这一切看起来都很好。现在它开始看起来有点不匹配。但是,我对存储库感到满意,并且喜欢它们提供的抽象、关注点分离和可测试性。
人们是否成功地将存储库模式与文档数据库一起使用?如果不是,您使用什么数据访问方法?抽象/SoC呢?
c# - 写入 RavenDb 后立即读取它会返回不一致的数据
我有一个协调过程,其中通过后台线程定期从外部 Web 服务检索对象 ID 列表,并尝试将丢失的实体添加到嵌入式 RavenDb 数据库。执行此过程的循环如下:
GetPageByPageId()
和的实现AddPage()
如下:
问题是如果列表有重复的 id,一旦它添加了第一个 id 并再次检查该 id,结果就会返回为空。就好像缺少将注册新添加的实体的最终确定步骤一样。如果我稍后从不同的线程查询该集合,则返回具有该给定 ID 的实体。谁能看到这里有什么问题?
谢谢,
database - 具有大量读写的海量数据的最佳数据存储
我需要在数据库中存储大约 1 亿条记录。每天将删除大约 60-70% 的记录,每天插入相同数量的记录。我觉得像 Hbase、Big Table 这样的文档数据库很适合。还有许多其他数据存储,例如 Cassandra、MongoDb 等。哪种数据存储对此类问题很有用,因为每天会有大量的读/写(数以百万计)。
database-design - 关于客户画像系统的建议:书籍、文章等
我将使用 C# 为我们自己的电子商务网站开展客户分析项目(与 Google Analytics 类似但不同)。我对这种项目很陌生,客户分析项目也是一个全新的项目。你能给我一些建议吗?
我觉得应该有两个部分,第一个是“跟踪网站访问数据”,第二个是“分析跟踪数据”。
你能给我一些建议吗?谢谢:
- 什么样的设计模式最适合这种项目?(管道和过滤器?还是其他?)我正在使用 C#。
- 什么样的数据库最合适?RDBMS 还是文档数据库?
- 如何为存储跟踪数据的数据库表建模?
- 我可以使用哪些关键字在 Google 上搜索此主题?
- 你能给我推荐一些文章或书籍来阅读吗?(文章比较好,因为没那么多时间看书)
- 你认为我需要学习的任何其他东西。
提前致谢!
c# - 具有搜索功能的文档数据库
有人知道是否有任何文档数据库提供良好的搜索功能?我看到 RavenDb 在某种程度上使用了 Lucene.net,但我正在寻找一种更集成的搜索体验,比如 Truffler.net 客户端 api 给你的。他们在 Elasticsearch 之上构建了一个 .net 客户端,提供了出色的搜索功能。
如果任何文档数据库客户端可以直接通过其客户端 api 提供类似功能,我认为这将是一个杀手级功能,但我不确定这是否可行。
nosql - 如何在文档数据库模型中建模“参考数据”?
我正在创建我的实体的文档模型以存储在文档数据库 (RavenDB) 中。我正在建模的领域围绕Incidents
. 事件具有来源、优先级、类别、影响级别和许多其他分类属性。在 RDBMS 中,我有一个 Incident 表,其中包含 Priorities 表、Categories 表、Impacts 表等的外键,但我不知道如何在文档数据库中处理它(这是我的第一个 Doc BD)。
我有两种类型的参考数据:
简单查找值:
Countries
,States
,Sources
,Languages
. 属性:它们只有一个名称,但这是一个多语言系统,因此每种语言都有名称。支持的操作:创建、删除、重命名、停用和合并。复杂参考数据:与简单查找相同,加:其中一些具有许多字段,并具有自己的业务规则和验证规则。例如,两个
Priorities
不能具有相同的Rank
值。有些具有更复杂的结构,例如Categories
由 组成Subcategories
。
我应该如何将它们建模为(或作为)文档的一部分?
PS:文档数据库建模指南的链接也将不胜感激
nosql - 我们应该对 Document 中的数据进行非规范化以提高性能吗?(文件数据库)
在我的系统员工日志中,请求和请求是关于设备的。
为了避免每次需要显示请求时都加载员工和设备文档,我想在请求文档中对员工姓名和设备库存编号、制造商名称和型号进行非规范化处理。
我在这里走错路了吗?这是反模式吗?
我意识到,如果我这样做,那么我将不得不更新所有受影响的请求文档,以防员工姓名更改或设备库存编号更改的极少数情况。
PS:文档数据库建模指南的链接也将不胜感激。