问题标签 [ravendb4]
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.
c# - RavenDB 客户端受限?
一般来说,我对 RavenDB 和 NOSQL 很陌生。为了测试性能,我用 RavenDB.Client 编写了一些非常粗略的代码。我只是启动 500 个并发任务,每个任务都将简单地创建一个测试文档,为每个请求使用一个新会话,随机间隔(1s-10s)。
出于某种奇怪的原因,请求以“突发”的方式发送,在不到一分钟的时间内达到大约 150 次写入/秒。流量爆棚?
每次爆发之间都有几分钟。
调试应用程序时,我可以在 session.SaveChanges() 处设置断点,它会立即被命中,所以我不确定这是否是 ravenDB.Client 库的连接限制(我想是 httpclient?)或者这是否是限制请求的实际数据库。
任何关于为什么会这样的猜测或提示,将不胜感激!
编辑:奇怪的是,在请求之间没有延迟的情况下只运行一项任务时,它会持续执行大约 400-500 个请求/秒。
}
c# - RavenDb:IDocumentQuery 结果中的计算字段
RavenDB v4 官方文档建议使用IRavenQueryable<T>.Select()
方法在结果集中获取自定义字段。它甚至适用于计算字段,例如
问题:IDocumentQuery<T>
当使用or IAsyncDocumentQuery<T>
instance 而不是时,有没有办法在结果集中拥有计算字段(如上)IRavenQueryable<T>
?
文档说请求被Query
转换成IDocumentQuery<T>
幕后。但是,缩小输出字段集的最接近的方法是SelectFields<T>()
,它没有在结果集中包含计算字段的选项。
PS文档说那Query
总是被翻译成DocumentQuery
对象。但是,我在代码中找不到它是如何实现的(尽管我猜它是通过IQueryable.Expression完成的)。也许RQL是现在要走的路……
c# - RavenDB 和递归包含
我有一个结构
我目前在 RavenDB 中存储和查找但包含结果仅允许我在潜在的多级树中包含一个级别。有没有办法告诉它递归查找从顶层引用的所有这些节点?
我知道索引可以递归使用,但我不清楚如何最好地使用它来加载正确的文档,是否有可能以某种方式在索引属性上执行包含?
nhibernate - RavenDB 4 - 更改修订时间戳
我计划从 SAP SQLAnywhere + NHibernate + Envers 迁移到 RavenDB4。
我正在做一些迁移和性能测试。目前,我正在寻找一种将 Envers Audit 迁移到 Raven 修订版的方法。
我正在尝试什么:
- 读取源审计记录。
- 将其插入 RavenDB。
- 为每条审计记录打补丁。
一切正常,但我需要将 raven 修订时间戳从迁移点更改为保存的 Envers 时间戳。有什么线索可以做到这一点,或者可能是进行这种迁移的更好方法?
我想避免为遗留数据创建另一个集合或添加原始时间戳作为元数据。
谢谢你
c# - RavenDb 索引对嵌套结构/集合的属性进行过滤和排序(扇出索引)
我正在寻找一种创建静态索引的方法,以便为嵌套结构(对象集合)中的属性值组合以及结构容器提供过滤/排序查询。由于以下原因,这似乎并非微不足道:
给定以下持久模型:
在哪里
问题:如何构建索引Document
以通过所有字段的组合进行过滤/排序Title
:UserId
和Timestamp
?
可能的用例:
- 获取包含特定用户和日期范围的“合同”一词的所有文档
- 按用户最后一次修改对包含单词“contract”的文档进行排序。
PS我知道可以通过重构持久性模型来绕过索引限制 - 在文档中存储最近修改的文档的结构User
,但它会施加一些其他限制,我想避免这些限制。
c# - 多对多关系 RavenDb:文档结构和索引
如何为以下关系模式构建 NoSQL 模型和索引(最好是 RavenDb v4)?
文档类型
Contact
,其中每条记录可以有多个附加属性(属性的类型在 中定义,CustomField
值在 中ContactCustomField
)
考虑到需要在一个查询中对突出显示的字段进行过滤/排序(联系人中的所有字段加上自定义字段)。
我看到的可能选项:
选项1
自然,我会想象以下持久模型:
但是,为如下查询构建索引(对不起,混合语法)让我感到困惑:
选项 #2
另一种方法是保持标准化结构(如上图所示)。然后它会起作用 - 我只需要ContactCustomField
在查询中包含Contact
.
缺点是没有利用 NoSQL 的好处。
ravendb4 - RavenDB 从服务器获取日期时间
对我来说,要从 SQL Server 服务器获取日期和时间,只需执行查询“select getdate()”。
有什么方法可以从 RavenDB 服务器获取日期和时间?
iis - RavenDB-4:System.ArgumentOutOfRangeException:位置不能为负,但为 -4554
尝试搜索某些数据及其 RavenDB 附件时出现此错误,但我真的不明白出了什么问题。
这是我在搜索数据时使用的查询
此查询用于search
我的一个 API 控制器的端点中。大多数情况下,查询按预期工作,我得到了我的数据。
但是在随机时间,我502 Bad Gateway
在这个特定的端点上收到一个错误,并且由于 dotnet 进程崩溃,api 崩溃了。它会自动重新启动,并且该端点上的接下来的几个请求正常工作。
我用 Rollbar 记录了所有未捕获的异常,并提供了上面提到的错误和这个堆栈跟踪。
这是我用来获取 RavenDB 附件的扩展:
这是因为 RavenDB 附件中的数据损坏而发生的事情吗?
此外,每次我得到 502 时,我的 Windows 服务器的事件查看器中都会出现一些日志。
最重要的错误记录如下:
底部错误记录了这一点;
我不确定它们是否相关,但它们都同时发生在同一个 API 端点上。可悲的是,我似乎无法自己找到造成这种情况的原因。
任何帮助表示赞赏!
编辑:
我使用的是 RavenDB 服务器版本4.0.5
。但是我把它升级到4.1.0-rc-41000
了几天前。错误发生在两个版本上。
java - 有没有办法为存储到 RavenDB 的 Java bean 指定集合名称?
我在我的应用程序中使用带有 JAVA ravendb-jvm-client 的 RavenDB,其中现有集合名称不反映 'User.java' -> 'Users' 约定。有没有办法为 java bean 指定正确的集合名称,以便 java 客户端使用它而不是自动约定?类似于 JPA 的 @Table 注释。
我知道我可以在查询中指定集合名称,例如session.query(User.class, Query.collection("custUsers"));
......但重复指定它非常冗长。
database - 如何使用 ClientAPI 重命名 RavenDB 数据库?
有没有办法通过使用 ClientAPI 和操作从代码中重命名 RavenDB 数据库?