项目"/>
[Array内的MongoDB更新项目
我想更新数组中数组内的现有项目。
我的文档结构如下:
{
"_id":"a1",
"projects":[{
"_id": "b1",
"title":"Title A",
"task":[
{"_id": "c1",
"title":"Title B"},
{"_id": "c2",
"title":"Title C"},
{"_id": "c3",
"title":"Title D"}
],
}]
}
假设我们要更改“任务”:
{"_id": "c2",
"title":"Title C"}
到
{"_id": "c2",
"title":"Title C1"}
有人知道更新此子文档的正确方法吗?
回答如下:通过将$set
与posititonal operator和arrayFilters
组合使用,这应该是可行的:db.getCollection('so-test').updateOne(
{ _id: "a1"},
{ $set: { "projects.$[].task.$[task].title": "Title C1" } },
{ arrayFilters: [ {"task.title": "Title C"} ]}
)
更多推荐
[Array内的MongoDB更新项目
发布评论