这里是虚拟JSON:
{
"_ID": ObjectId('xdfdsf'),
"array": [
{
"name": "Jon",
"permissions": [
"update",
"delete",
"create"
]
},
{
"name": "Ben",
"permissions":[
"update"
]
}
]
}
以此类推。我想创建一个查询,将搜索数组,在数组中查找名称为“ Ben”的元素,并将新权限推入数组。
这可能相对简单,但是我完全迷路了。
答案 0 :(得分:2)
您可以使用$
个位置运算符来执行此类updates
。
尝试一下:
db.collection_name.update({
"array.name" : "Ben"
},{
$push : {
"array.$.permissions" : "new_permission"
}
}
在MongoDb官方文档中详细了解$(update) positional operator,以获取详细信息。
答案 1 :(得分:1)
可悲的是,佐蒂的答案是错误的,但我终于使它起作用了:
db.myCollection.update( { "array.name": "Ben"}, {$push: {"array.$.permissions": "read"}})