【发布时间】:2014-10-17 13:00:44
【问题描述】:
我需要更新 MongoDB 中的子数组。
我的文档:
{
"_id" : ObjectId("5433d63cfafed42c083e0809"),
"name" : "Flavio",
"desc" : "feature",
"US" : [
{
"_id" : ObjectId("543ebeb473bc8d243d6b28dc"),
"name" : "asdf",
"desc" : "asdf",
"tasks" : [
{
"_id" : ObjectId("544029257266e4841735cde8"),
"name" : "hello",
"date" : "16/10/2014 05:23:01 pm",
"author" : "5424ac37eb0ea85d4c921f8b"
},
{
"_id" : ObjectId("54410bf33561315021a29e2b"),
"name" : "lol",
"date" : "17/10/2014 09:30:43 am",
"author" : "5424ac37eb0ea85d4c921f8b"
}
]
}
]
}
我需要将一个新数组推送到 US.tasks._id = ObjectId("54410bf33561315021a29e2b") 的任务。
预期更新的任务:
{
"_id" : ObjectId("54410bf33561315021a29e2b"),
"name" : "lol",
"date" : "17/10/2014 09:30:43 am",
"author" : "5424ac37eb0ea85d4c921f8b"
"points" : [
{
"count" : 10,
"name": "pt"
}
]
}
我正在尝试:
db.projects.update({
"US.tasks": {
$elemMatch: {"_id": ObjectId("544029257266e4841735cde8")}
}
}, {
$push: {"US.$.tasks": {"points" : []}}
})
db.projects.update({
"US.tasks": {
$elemMatch: {"_id": ObjectId("544029257266e4841735cde8")}
}
}, {
$push: {"US.$.tasks.points": {"count" : 10, "name" : "pt"}}
})
但新对象没有进入任务对象。
我如何解决这个问题并获得我想要的对象?
谢谢!
【问题讨论】:
标签: mongodb