我如何在Ravendb中更新数组中的值?我需要使用查询

问题描述 投票:1回答:1

我有几个文件。下面我将仅列出两个。如何更新所有文档中“名称字段:StartDate”下方的“值字段”的值?

示例:10/10/2019至09/09/2019由01/01/2019至09/09/2019

文档1:

{
    "IdLoginTwm": 4330,
    "Parametros": [
        {
            "Name": "UserName",
            "Value": "[email protected]"
        },
        {
            "Name ": "StartDate",
            "Value ": "10/10/2019"
        }
    ]
}  

文档2:

{
    "IdLoginTwm": 4330,
    "Parametros": [
        {
            "Name": "UserName",
            "Value": "[email protected]"
        },
        {
            "Name ": "FirstName",
            "Value ": "diego"
        },  
        {
            "Name ": "StartDate",
            "Value ": "01/01/2019"
        }
    ]
}  

谢谢!

ravendb raven ravendb-studio ravendb4
1个回答
0
投票

您可以为此使用PatchByQueryOperation()。

https://ravendb.net/docs/article-page/4.2/Csharp/client-api/operations/patching/set-based#patching-how-to-perform-set-based-operations-on-documents

补丁脚本应类似于以下内容

from Logins
update {
    var res = this.Parametros.filter(x => x.Name == "StartDate")
    if (res.length > 0)
    {
        res.forEach(x => x.Value = 'NULL')
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.