问题标签 [ravendb]

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.

0 投票
1 回答
1786 浏览

c# - 删除后如何在 RavenDB 中等待结果更新

我正在使用 Raven DB 的存储库模式。我的存储库界面是

实施是

我有一个测试,将所有实体标记为删除,保存更改并查询数据库以查看结果计数是否为零

测试失败并输出样本

问题是如果我多次运行此测试,这些项目实际上正在被删除(一次 2-3 个项目)。我看到有一个具有WaitForNonStaleResults方法的 IDocumentQuery。

但我在NuGet 安装的Raven.Client.Lightweight命名空间中找不到它。

总结一下如何等到数据库更新以及如何读取新数据。我做错了什么吗?谢谢你的帮助!

0 投票
2 回答
1889 浏览

c# - 使用 Raven DB 的数据访问架构

我可以将哪些数据访问架构与 Raven DB 一起使用?

基本上,我想通过接口分离持久性,所以我不会将下划线存储暴露给上层。即我不希望我的域看到来自 Raven DB 的IDocumentStoreIDocumentSession 。

我已经实现了通用存储库模式,这似乎有效。但是,我不确定这实际上是正确的方法。也许我应该进行命令查询隔离或其他什么?

你怎么认为?

0 投票
1 回答
602 浏览

mongodb - 可以将 sqlServer 视图同步到 MongoDB 或 RavenDB 等 noSQL 数据库中吗?

出于性能原因,我希望将复杂的 sqlserver 视图放入像 mongoDB 这样的文档数据库中。是否可以将两者同步?或将每个记录/文档从视图中获取到文档数据库的最佳方法是什么。

这仅用于在网络上直接查看数据。没有更新、删除或插入。

*想了解documentDB,这将是一个简单的实现项目。

0 投票
2 回答
968 浏览

ravendb - 使用客户端 api 在 ravendb 中进行 selectmany 的解决方法

我有一个像这样的 ravendb 类:

和这样的文件:
在此处输入图像描述

由于 selectmany,以下 linq 将无法工作:

如何让 StartYear == 2009 的所有学生?

0 投票
4 回答
1320 浏览

c# - 如何搜索庞大的非基于文本的数据集?

在我正在工作的一个项目中,客户有一个旧的和海量(TB 级)的 RDBMS。各种查询都很慢,没有时间修复/重构模式。我已经确定了需要优化的常见查询集。该集合分为两部分:全文查询和元数据查询。

我的计划是从他们的数据库中提取数据并将其分区到两个不同的存储系统中,每个存储系统都针对特定的查询集进行了优化。

对于全文搜索,Solr 是最有意义的引擎。它的分片和复制功能使其非常适合解决一半的问题。

对于元数据查询,我不确定采取什么路线。目前,我正在考虑使用具有极度非规范化模式的 RDBMS,该模式表示来自“权威”RDBMS 的特定数据子集。但是,我的客户担心与已经包含它们的 Solr 相比,此类子系统缺乏分片和复制,以及设置此类功能的困难/复杂性。在这种情况下,元数据采用整数、日期、布尔值、位和字符串的形式(最大大小为 10 个字符)。

是否有具有内置分片和复制功能的数据库存储系统可能对查询所述元数据特别有用?也许有一个提供良好查询引擎的无 sql 解决方案?

请照亮。

补充/回应:

Solr 可用于元数据,但是元数据是易失的。因此,我必须经常提交索引。这将导致搜索性能下降得非常快。

0 投票
2 回答
2179 浏览

scalability - RavenDB - 规划可扩展性

我最近一直在学习 RavenDB,并想使用它。

我想知道人们对以可扩展的方式构建系统有什么建议或建议,特别是跨服务器分片数据,但这可以在单个服务器上开始,并且只能根据需要增长。

在单个实例上创建多个数据库并在它们之间实现分片是否可取,甚至可能。然后扩展它只是将这些数据库分布在机器上的问题?

我的第一印象是这种方法会奏效,但我很想听听其他人的意见和经验。

更新1:

我一直在思考这个话题。我认为我对“稍后整理”方法的问题是,在我看来,在这种情况下很难将数据均匀地分布在服务器之间。我不会有一个可以在(AE,FM ..)范围内的字符串键,它将用数字完成。

这留下了我可以看到的两个选项。要么在边界处打破它,所以 1-50000 在分片 1 上,50001-100000 在分片 2 上,但是对于一个老化的网站,比如这个,你的原始分片将做更少的工作。或者,如果您需要将文档移动到新的分片,循环分片并将分片 id 放入键中的策略将受到影响,它会更改键并破坏已使用该键的 url。

所以我的新想法,我再次提出来征求意见,就是从第一天开始创建一个分桶系统。这就像将分片 id 填充到密钥中一样,但你从一个大数字开始,比如 1000,你在它们之间平均分配。然后,当需要将负载拆分为分片时,您可以说将存储桶 501-1000 移动到新服务器并编写分片逻辑,即 1-500 进入分片 1,501-1000 进入分片 2。然后当一个第三台服务器上线,您选择另一个范围的存储桶并进行调整。

在我看来,这使您能够拆分成与最初创建的存储桶一样多的分片,从而在数量和年龄方面平均分配负载。无需更改密钥。

想法?

0 投票
1 回答
394 浏览

ravendb - RavenDB 的文档结构

我有课

活动历史可以包含很多元素。

我希望将带有历史记录的用户活动存储在 RavenDB 中。但是,当我第一次从 DB 获取 UserActivity 时,ActivityHistory 应该有最后 10 个项目,例如,我应该有可能加载其他项目或将新项目添加到集合并保存它们。

我该怎么做?

据我了解,我只有一种方法 - 将 UserActivity 和历史项目分开存储。

0 投票
2 回答
4324 浏览

.net-4.0 - 错误 FileAccessDenied(JET_errFileAccessDenied,无法访问文件,文件被锁定或正在使用)

我正在尝试将 Raven DB 部署到以集成模式运行.Net 4的站点(该站点以前用于托管 ASP.Net MVC 3 站点。

我的配置文件是这样的:

但是,我得到的例外是:

我已经联系了我的主机并确认我具有对 App_Data 的读/写访问权限,并且我自己也通过编写一些代码来在那里创建一个文件来确认这一点。

我的主人暗示我的问题可能是由于我的数据存储的双重初始化——不管这意味着什么。

你们中的任何人都可以在这里指出我的解决方案吗?

更新 2011-05-18 我正在使用目前在http://builds.hibernatingrhinos.com/download/2004上可用的 RavenDB-Build-360 。我正在使用http://ravendb.net/documentation/docs-deployment-iis上的安装说明在 IIS 7.5 上运行它。但我没有使用自己的本地 IIS,而是将 /Web-folder 的内容复制到我的主机。这意味着 /bin 文件夹、web.config 和 SilverLight XAP 文件。所以我无法通过任何方式调试我的方式。

我没有注意到第一行(关于 WebDAV 模块),但我会尽快与我的主机核实。
Raven DB 如何依赖于此?

0 投票
2 回答
2581 浏览

mongodb - Raven DB 到 SQL 服务器(NoSQL DB 到关系数据库)

有没有办法将 NoSQL 数据库数据(Raven、Mongo、Couch)转换/迁移为 SQL 服务器数据?由于一些 NoSQL 数据库缺少报告工具,如果我可以将数据移动到 SQL 并直接处理它会更容易(仅用于数据分析、查询、报告需求)。感谢评论。

0 投票
4 回答
1708 浏览

c# - 如何使用 RavenDb 默认 id 生成器获取连续 id

我正在为一个新项目评估 RavenDB。

如果我创建 100 个实体,我会得到很好的连续 ID,例如:

  • 帖子/1
  • 帖子/2
  • 帖子/3
  • ...
  • 帖子/100

但是,如果我构建一个新的 DocumentStore 实例(在 App Restart 之后)并尝试创建新实体,我会得到如下奇怪的 id:

  • 帖子/1025
  • 帖子/1026
  • 帖子/1027

有什么帮助吗?

注意:我正在使用带有 ASP.NET MVC 3 的嵌入式服务器