Удалить строку из массива в объекте Json, проходящем через документы - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть несколько документов в базе данных RavenDB NoSql. Я использую отдыхающие службы для публикации, размещения и получения документов команды, когда это необходимо. Однако мне нужно создать функциональность для ввода строки и прохождения по всем документам, склеивая эту конкретную строку из документа при его прохождении через каждый документ. Мой формат JSON как таковой.

{
"Name": " Management Team Lead",
"IsActive": true,
"UserRoleId": "userRoles/DemoSystemAdmin",
"Region": "Europe",
"Country": "Unknown",
"CommitteeType": "Haaa",
"MemberUserIds": [
    "joeBlogs",
    "TomCreen",
    "Herbyvoire",
    "MayJune",
],
"PortfolioIds": [],
"LegalEntityIds": []

}

В этом случае мне нужно проверить более 40 документов команды и более, если в этом документе команды существует MemberUserId и, если это так, удалить его. Я очень новичок в .Net, но я представляю, что я попытаюсь сделать, это цикл «Получить» каждого документа, а затем проверить, соответствует ли строка Json, и действительно ли она склеивается в пустое место, и «Отложить» обратно. в базу данных.

Как мне пройтись по каждому документу без указания имени каждого?

1 Ответ

0 голосов
/ 29 апреля 2018

Используя RQL, вы можете сделать это с помощью следующего запроса:

from Users as u
where u.MemberUserIds[] = 'TomCreen'
update {
    u.MemberUserIds = u.MemberUserIds.filter(m => m != 'TomCreen')
}

Это позволит найти только соответствующие документы и обновить их.

...