{
"partners" : [
{
"partnerId" : 5,
"topicIds" : [
"59de26f2e4b0f263704769e5"
]
},
{
"partnerId" : 45,
"topicIds" : [
"alpha",
"beta"
]
},
{
"partnerId" : 12345,
"topicIds" : [
"alpha"
]
}
]
}
我想从指定的合作伙伴那里提取一些主题。
例如,我想从partnerID=45中提取alpha主题(该条目应该保留为topicids=[“beta”])。
我试过:
db.mypartnercoll.update({}, {$pull:{"partners":{"partnerId":45, "topicIds":{"$in":["alpha"]}}}})
但是,这将删除整个partnerID=45条目。我将拥有一个partnerID值和多个主题。
最佳答案
而不是
db.mypartnercoll.update({}, {$pull:{"partners":{"partnerId":45, "topicIds":{"$in":["alpha"]}}}})
使用
db.mypartnercoll.update({"partners.$.partnerId":"yourdesired_partnerId"},
{$pull:{"partners":{"partnerId":45, "topicIds":{"$in":["alpha"]}}}})
这是一个更新查询,因此您可以在第一个{}中指定要操作的某个文档或数组元素