在RavenDB中,我可以检索文档类型的所有文档ID

时间:2013-05-09 16:08:06

标签: ravendb

我的情景: 我有几千个文件,我想改变(重命名和添加属性),我写了一个PatchRequest来改变文档,但这需要一个文档ID。

我正在寻找一种方法来获取特定类型,任何想法的所有文档的文档ID列表?

如果可能,我想避免从服务器检索文档。

1 个答案:

答案 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