2

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

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

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

4

1 回答 1

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 文档中的基于集合的操作

于 2013-05-09T18:22:50.960 回答