我的情景: 我有几千个文件,我想改变(重命名和添加属性),我写了一个PatchRequest来改变文档,但这需要一个文档ID。
我正在寻找一种方法来获取特定类型,任何想法的所有文档的文档ID列表?
如果可能,我想避免从服务器检索文档。
答案 0 :(得分:2)
我已经编写了一个PatchRequest来修改文档,但这需要一个文档ID。
不,.Patch需要一个文档ID,而不是PatchRequest。
由于您想要更新整个文档,您需要使用.UpdateByIndex方法:
documentStore.DatabaseCommands.UpdateByIndex("IndexName",
new IndexQuery {Query = "Title:RavenDB"},
new []
{
new PatchRequest
{
Type = PatchCommandType.Add,
Name = "Comments",
Value = "New automatic comment we added programmatically"
}
}, allowStale: false);
这将允许您修补与索引匹配的所有文档。该指数可以随心所欲。
有关详细信息,请参阅Raven文档中的Set-Based Operations。