我的文档中有以下结构:
{
"_id": ObjectId("5891a85bccaad513a844308f"),
"sites": [
{
"site": "site1",
"url": "site1.com",
"status": 1,
},
{
"site": "site2",
"url": "site2.com",
"status": 1,
},
{
"site": "site3",
"url": "site3.com",
"status": 1,
}
]
}
然后我将所有网站加载到UI。然后我会做一些更改,如跟随图像并点击更新。我删除了“site3”。 那么我的结构应该如下更新。 site3状态应更新为0
{
"_id": ObjectId("5891a85bccaad513a844308f"),
"sites": [
{
"site": "site1",
"url": "site1.com",
"status": 1,
},
{
"site": "site2",
"url": "site2.com",
"status": 1,
},
{
"site": "site3",
"url": "site3.com",
"status": 0,
}
]
}
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用位置$
更新。
查询过滤器在数组中找到匹配的site
,更新部分会将status
设置为0到匹配元素。
collection.updateOne(new Document("_id", new ObjectId("5891a85bccaad513a844308f")).append("sites.site", "site3"), Updates.set("sites.$.status", 0));