J'ai un problème ennuyeux, et c'est que même si le critère correspond à plusieurs utilisateurs dans mon système, un seul d'entre eux a tiré le tableau spécifique.Tirez tous les tableaux des utilisateurs correspondant aux critères
Voici comment un utilisateur pourrait ressembler à:
{
"_id" : ObjectId("4ff696cf246951c8cea8506c"),
"campaigns" : [
{
"userchannel" : 1,
"id" : ObjectId("4ff59640acf479392600015b"),
"name" : "test3"
}
],
}
Un utilisateur peut avoir plusieurs campagnes, mais une seule avec le même nom. Lorsque je supprime la campagne que je souhaite mettre à jour, les utilisateurs des utilisateurs qui la contiennent sont supprimés. Seuls les utilisateurs avec une campagne contenant userchannel : 1
doivent être supprimés.
J'utilise actuellement ceci:
db.users.update({'campaigns.userchannel' : 1}, {$pull : {'campaigns' : {'id': ObjectId("4ff59640acf479392600015b")}}})
Mais il ne supprime que la campagne pour un utilisateur. Comment puis-je améliorer cette requête afin qu'elle supprime la campagne spécifique de tous les utilisateurs?
J'ai un problème quand j'essaye d'implémenter la solution: ' Attention: MongoCollection :: update() attend au plus 3 paramètres, 4 donnés dans/application/models/Campaigns.php à la ligne 59'. Il semble qu'il n'aime pas le 4ème paramètre .. :( – Ms01
Nvm, php avait un tableau pour déclarer des options supplémentaires: http://www.php.net/manual/fr/mongocollection.update.php – Ms01