【问题标题】:Most ideal way to update a RavenDB collection, without an index更新 RavenDB 集合的最理想方式,无需索引
【发布时间】:2014-09-09 13:00:27
【问题描述】:

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

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 的文档数量限制(“默认安全”)。但简单地说:它有效。我还没有为此创建索引,RavenDB 在使用时列出了一个动态索引,这似乎工作得很好。

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

为部分文档更新提供的示例,Batch operations 似乎是为此目的而设计的。但是,这些示例似乎都只与单个文档相关 - 我似乎无法找到一个体面的解释来说明如何使用对象集合。

此外,HTTP API 在multi document operations 上有一些不错的示例。事实上,Set based updates 部分正好提供了我想要实现的场景类型。不过,它需要先创建索引。

不过,我似乎找不到一个像样的示例来说明如何使用 .NET 客户端简单地更新动态集合。简而言之,问题是:与我上面的示例相比,对于集合的简单更新,有什么更好或更明智的方法

【问题讨论】:

    标签: c# ravendb


    【解决方案1】:

    如果您的收藏量很小,它就可以正常工作。 RavenDB 会在后台为您创建索引。

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多