繁体   English   中英

在RavenDB中设置操作

[英]Set operations in RavenDB

我在ravendb set操作上阅读了这篇文章 ,但它没有告诉我如何通过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 )。 第三个参数是update子句。 第四个参数是你想要陈旧的结果。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM