c# - RavenDB 中的集合操作

标签 c# ravendb

我读了this article在 ravendb 集操作上,但它没有告诉我如何通过 C# 更新一组文档。我想更新所有符合特定条件的文档的字段。或者换句话说,我想利用这个 C# 并使其更高效:

var session = db.GetSession();
foreach(var data in session.Query<Data>().Where(d => d.Color == "Red"))
{
    data.Color = "Green";
    session.Store(data);
}
session.SaveChanges();

最佳答案

参见 http://ravendb.net/docs/2.5/faq/denormalized-updates

第一个参数是您要更新的索引的名称。 第二个参数是索引查询,它可以让你指定你的 where 子句。查询的语法是 lucene 语法 ( http://lucene.apache.org/java/2_4_0/queryparsersyntax.html )。第三个参数是更新子句。第四个参数是你是否想要陈旧的结果。

documentStore.DatabaseCommands.UpdateByIndex("DataByColor",
    new IndexQuery
    {
        Query = "Color:red"
    }, new[]
    {
            new PatchRequest
            {
                Type = PatchCommandType.Set,
                Name = "Color",
                Value = "Green"
            }
    },
    allowStale: false);

关于c# - RavenDB 中的集合操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099298/

相关文章:

c# - 将 ADO.Net 实体数据模型向导连接到 MySQL 数据库

c# - Controller 针对单个请求执行两次

c# - 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败。访问本地数据库时

c# - WCF如何创建连接到同一个服务实例的两个 channel

database - NoSQL 数据存储,我们不是正在进入平面文件时代吗?

c# - 文本框已聚焦,但在我单击之前无法键入 - XAML/C#/WPF

database - 我可以使用 RavenDB (NoSQL) 还是应该只使用 MySQL (RDBMS)?

linq - 在 RavenDB 中使用空格键搜索子字符串

c# - RavenDB 按索引删除