我在 MongoDB 中存储了以下文档:
{
name: 'myDoc',
list: [
{
id:1
items:[
{id:1, name:'item1'},
{id:2, name:'item2'}
]
},
{
id:2
items:[
{id:1, name:'item1'},
{id:3, name:'item3'}
]
}
]
}
我找到了一种使用 $addToSet
将元素添加到“列表”的方法,但我找不到将项目添加到特定“项目”列表的方法。
例如 我得到以下信息:
{id:5, name:'item5'}
我想将它添加到列表中 id:2 的元素项中。
最佳答案
一种方法是使用 $push
:
db.col.update(
{ name: 'doc', 'list.id': 2 },
{$push: {'list.$.items': {id: 5, name: 'item5'}}}
)
http://docs.mongodb.org/manual/reference/operator/push/
您还可以将 $push
替换为其他运算符,例如(可能)$addToSet
,以获得与您要查找的结果相似的结果。主要区别在于 $push
会将新元素附加到列表中,而 $addToSet
将添加不存在的元素(一组唯一的元素)。
https://stackoverflow.com/questions/13987365/