最理想的更新RavenDB集合的方法,没有索引

时间:2014-09-09 13:00:28

标签: c# ravendb

我想更新一组文档,这些文档是动态查询,例如没有索引。这是一个有效的(伪)样本:

void ChangeOwnerShip(string oldName, string newName) {

    var collection = session.Query<GummyBears>()
        .Where(p => p.OwnerName == oldName);

    foreach (var doc in collection) {
        doc.OwnerName == newName;
    }

    session.SaveChanges();
}

在上面的示例中,我不会考虑您可以使用的文档限制,并且可能会从RavenDB中考虑(&#34;默认为安全&#34;)。但简单地说:它有效。我还没有为此创建索引,RavenDB在使用时会列出动态索引,这似乎工作正常。

但是凭借RavenDB中所有漂亮的功能,我确信这不是最理想的做法。

为部分文档更新提供的示例Batch operations似乎是为此目的而设计的。但是,这些样本似乎只与单个文档相关 - 而且我似乎无法找到关于如何使用对象集合进行处理的合适解释。

此外,HTTP API在multi document operations上有一些不错的样本。事实上,基于集合的更新部分提供了我想要实现的场景类型。不过,它首先需要创建一个索引。

尽管如此,我似乎无法找到一个关于如何使用.NET客户端简单更新动态集合的好例子。简而言之,问题是:对于集合的简单更新,什么是更好或更明智的方法,而不是上面的示例?

1 个答案:

答案 0 :(得分:0)

如果你的收藏很小,它会很好用。 RavenDB将为您创建一个幕后索引。