Как мне обновить значение в массиве в Ravendb? Мне нужно использовать Query - PullRequest
2 голосов
/ 02 ноября 2019

У меня есть несколько документов. Ниже я перечислю только два. Как обновить значение поля «Значение», которое находится ниже поля «Имя: StartDate» во всех документах?

Пример: с 10 октября по 9 сентября 2009 годапо 09/09/2019

Документ 1:

{
    "IdLoginTwm": 4330,
    "Parametros": [
        {
            "Name": "UserName",
            "Value": "diego.guiando@gmail.com"
        },
        {
            "Name ": "StartDate",
            "Value ": "10/10/2019"
        }
    ]
}  

Документ 2:

{
    "IdLoginTwm": 4330,
    "Parametros": [
        {
            "Name": "UserName",
            "Value": "diego.guiando@gmail.com"
        },
        {
            "Name ": "FirstName",
            "Value ": "diego"
        },  
        {
            "Name ": "StartDate",
            "Value ": "01/01/2019"
        }
    ]
}  

Спасибо !!

1 Ответ

0 голосов
/ 04 ноября 2019

Для этого вы можете использовать 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')
    }
}
...