我有一个烦人的问题,即使条件匹配我系统中的多个用户,也只有其中一个用户提取了特定的数组。
这可能是用户的样子:
{
"_id" : ObjectId("4ff696cf246951c8cea8506c"),
"campaigns" : [
{
"userchannel" : 1,
"id" : ObjectId("4ff59640acf479392600015b"),
"name" : "test3"
}
],
}
一位用户可以有多个广告系列,但只有一个具有相同名称。当我删除活动时,我想将用户更新为包含此活动的用户被删除。userchannel : 1
仅应删除包含活动的用户。
我目前使用这个:
db.users.update({'campaigns.userchannel' : 1}, {$pull : {'campaigns' : {'id': ObjectId("4ff59640acf479392600015b")}}})
但它只会删除一个用户的广告系列。如何改进此查询,以便从所有用户中删除特定广告系列?