【发布时间】:2014-12-20 07:24:08
【问题描述】:
这似乎是 MongoDB 的一个未解决问题,https://jira.mongodb.org/browse/SERVER-831,但我不确定是否真的有解决方案,我只是在以错误的方式思考和研究。
这是我的架构的一个子集:
var myModel = new mongoose.Schema({
arrayA: [{
subArrayA: [{
fieldA: String
}],
subArrayB: [{
fieldB: String
}]
}],
});
我想通过将值推入 subArrayA 来更新它。我试过以各种方式做到这一点,但没有成功。这是最简单的尝试:
myModel.findByIdAndUpdate(req.mymodel.arrayA.id(req.params.id), {
$push: {
subArrayA: {
fieldA: valA
}
}
}, function(err) {
// some stuff
});
当直接推送到 arrayA 时,这可以正常工作。例如,下面的代码以我希望的方式执行 - 通过将值推送到 arrayA:
myModel.findByIdAndUpdate(req.mymodel.id, {
$push: {
arrayA: {
fieldA: valA
}
}
}, function(err) {
// some stuff
});
【问题讨论】:
标签: javascript node.js mongodb mongoose mongodb-query