【发布时间】:2025-11-21 19:45:02
【问题描述】:
我有一个具有如下文档结构的集合:
{
"basicDetails": {
"id": "1",
"name": "xyz"
},
"tasks": [{
"id": "10",
"name": "task10",
"subtasks": [{
"id": "120",
"name": "subTask120",
"description": "ABC"
}]
}]
}
如您所见,每个文档都有 basicDetails 对象和一个 tasks 数组。每个任务都包含自己的一些属性和一个子任务数组。
我想将子任务的描述从 ABC 更新为 XYZ
where root level id is 1, task'id is 10 and subTasks.id =120
我该怎么做?
我知道我可以通过以下方式找到正确的文档:
db.collection.find({
"basicDetails.id": "1",
"tasks": {
"$elemMatch": {
"id": "10",
"subtasks": {
"$elemMatch": {
"id": "120"
}
}
}
}
})
但是我该如何更新呢?我只想更新单个子任务的一个属性,即描述
【问题讨论】:
-
你尝试了什么?顺便说一句,我可以推荐一些 Mongo 大学的 101 个。
-
@A.D.
db.Projects.updateOne({"basicDetails.id":"200" , "tasks":{"$elemMatch":{"basicDetails.id":"139","subtasks":{"$elemMatch":{"name":"xyz3"} }}} }, {$set: {'basicDetails.$.tasks.basicDetails': 'Blah'}} )
标签: javascript node.js mongodb mongodb-query nosql