Mongodb 从嵌套在另一个数组中的数组中删除特定记录
我有如下MongoDB记录:Mongodb 从嵌套在另一个数组中的数组中删除特定记录,mongodb,pymongo,Mongodb,Pymongo,我有如下MongoDB记录: "id": 1, "Tasks": [ { "description": "BLAH", "Tags": [ { "Name": "test", "tagID": "YRG+crq3SJucvlUwTo/uSg==" }, { "Name": "Cars",
"id": 1,
"Tasks": [
{
"description": "BLAH",
"Tags": [
{
"Name": "test",
"tagID": "YRG+crq3SJucvlUwTo/uSg=="
},
{
"Name": "Cars",
"tagID": "ObwiiZpNTOGECgHb1HehHg=="
}
]
},
......
]
我正试图通过引用“tagID”从“Tags”中删除带有“Name:test”的对象。我的查询删除了“Tasks”中的整个记录,而不仅仅是特定的Tags对象
db.user.update({ 'id': 1 },
{
'$pull': { 'Tasks': {'Tags.tagID': "YRG+crq3SJucvlUwTo/uSg==" }}
},
{ '$multi': 'true' }
)
如何将查询简化为仅删除该特定标记而不删除整个记录?我想您正在查找
$unset
命令。参考。使用和$pull
更新操作符删除特定数组元素对象:
db.user.update({"id": 1, "Tasks.description": "BLAH"},
{
"$pull": {"Tasks.$.Tags" : { "tagID": "YRG+crq3SJucvlUwTo/uSg==" }}
},
{ multi: true}
);
使用
Pymongo
和运算符
我认为这是
multi
而不是$multi
@Michael你是对的,谢谢你的更正。
col.update({"id": 1, "Tasks.description": "BLAH"},
{
"$pull": {"Tasks.$.Tags" : { "tagID": "YRG+crq3SJucvlUwTo/uSg==" }}
}, multi=True
)