【发布时间】:2016-01-20 16:10:54
【问题描述】:
mongodb 3.0.7 猫鼬 4.1.12
我想推新元素:“bbb” 到位于外部 orgs 数组中的 groups 数组...
来自这里的原始 mongo 数据:
{
orgs: [
{
org: {
_bsontype: "ObjectID",
id: "123456789012"
},
groups: [
"aaa"
]
}
],
_id: {
_bsontype: "ObjectID",
id: "888888888888"
}
}
到这里:
{
orgs: [
{
org: {
_bsontype: "ObjectID",
id: "123456789012"
},
groups: [
"aaa",
"bbb"
]
}
],
_id: {
_bsontype: "ObjectID",
id: "888888888888"
}
}
这是一个硬编码的解决方案,但我不想要 硬编码数组索引(参见 0 中的:'orgs.0.groups')
dbModel.findByIdAndUpdate(
{ _id: ObjectId("888888888888".toHex()), 'orgs.org' : ObjectId("123456789012".toHex()) },
{ $push : { 'orgs.0.groups' : 'bbb'
}
},
{ safe: true,
upsert: false,
new : true
}
)
...我希望一个简单的 'orgs.$.groups' 可以工作,但没有。也试过 'orgs.groups' ,也没有。 我真的需要先检索 orgs 数组,识别索引吗 然后执行一些第二个操作来推送到正确的 orgs 数组元素?
PS - 建议的重复答案不能解决这个问题
【问题讨论】:
标签: mongodb mongoose mongodb-query