首页 > 解决方案 > 从遍历文档的Json对象中的数组中删除字符串

问题描述

我在 RavenDB NoSql 数据库中有多个文档。我正在使用 restful 服务在需要时发布、放置和获取团队文档。但是,我需要创建功能来键入字符串并循环遍历所有文档,以便在遍历每个文档时从文档中拼接出该特定字符串。我的 JSON 格式就是这样。

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

}

在这种情况下,如果该团队文档中存在 MemberUserId,我必须检查 40 多个团队文档,如果存在则将其删除。我对 .Net 很陌生,但我想我会尝试循环“获取”每个文档,然后检查字符串是否与 Json 匹配,以及它是否在空白处拼接并“放回”到数据库。

如何循环遍历每个文档而不必指定每个文档的名称?

标签: c#.netangularjsnosqlravendb

解决方案


使用 RQL,您可以通过以下查询执行此操作:

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

这将只找到相关文件并更新它们。


推荐阅读