厄介な問題があります。基準がシステム内の複数のユーザーに一致する場合でも、そのうちの1人だけが特定の配列をプルしているということです。
ユーザーは次のようになります。
{
"_id" : ObjectId("4ff696cf246951c8cea8506c"),
"campaigns" : [
{
"userchannel" : 1,
"id" : ObjectId("4ff59640acf479392600015b"),
"name" : "test3"
}
],
}
1人のユーザーが複数のキャンペーンを持つことができますが、同じ名前のキャンペーンは1つだけです。キャンペーンを削除すると、ユーザーを更新したいのですが、このキャンペーンを含むユーザーは削除されます。を含むキャンペーンを持つユーザーのみをuserchannel : 1
削除する必要があります。
私は現在これを使用しています:
db.users.update({'campaigns.userchannel' : 1}, {$pull : {'campaigns' : {'id': ObjectId("4ff59640acf479392600015b")}}})
ただし、削除されるのは1人のユーザーのキャンペーンのみです。このクエリを改善して、すべてのユーザーから特定のキャンペーンを削除するにはどうすればよいですか?