从嵌套在另一个数组中的数组中删除特定记录
Deleting specific record from an array nested within another array
我有一个 MongoDB 记录如下:
"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
命令。参考 here.
使用positional operator $
和$pull
更新运算符来删除特定的数组元素对象:
db.user.update({"id": 1, "Tasks.description": "BLAH"},
{
"$pull": {"Tasks.$.Tags" : { "tagID": "YRG+crq3SJucvlUwTo/uSg==" }}
},
{ multi: true}
);
使用 Pymongo
和 $
运算符
col.update({"id": 1, "Tasks.description": "BLAH"},
{
"$pull": {"Tasks.$.Tags" : { "tagID": "YRG+crq3SJucvlUwTo/uSg==" }}
}, multi=True
)
我有一个 MongoDB 记录如下:
"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
命令。参考 here.
使用positional operator $
和$pull
更新运算符来删除特定的数组元素对象:
db.user.update({"id": 1, "Tasks.description": "BLAH"},
{
"$pull": {"Tasks.$.Tags" : { "tagID": "YRG+crq3SJucvlUwTo/uSg==" }}
},
{ multi: true}
);
使用 Pymongo
和 $
运算符
col.update({"id": 1, "Tasks.description": "BLAH"},
{
"$pull": {"Tasks.$.Tags" : { "tagID": "YRG+crq3SJucvlUwTo/uSg==" }}
}, multi=True
)