【发布时间】:2014-09-23 08:44:15
【问题描述】:
我正在尝试更新 mongodb 中的嵌套子文档,
{
id: 100,
status: [ {
campaigns: [
{ timestamp: "2014-07-30",
task: [
{
id: "1",
created: "2014-07-30"
}
]
},
{ timestamp: "2014-07-31",
task: [
{
id: "2",
created: "2014-07-31" // need to update this field
}
]
},
]
},
]
}
更新查询
db.collectionname.update({"id": 100,"status.campaigns.task.id":"2"},{$set:{"status.0.campaigns.$.task.created:"2014-08-01"}});
上面的查询只更新第一条记录(task.id = "1" 创建日期)它不更新 task.id="2" 子文档!!!!
【问题讨论】:
-
你为什么使用
status.0?是否只需要更新status数组中的第一个条目? -
campaings 位置参数而不是状态数组中的问题
-
您可以根据需要更新任务,但您需要知道它在数组中的位置。你事先知道吗?
标签: mongodb subdocument