MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Erreur Mongodb :l'opérateur positionnel n'a pas trouvé la correspondance requise dans la requête

Vous devez inclure le champ de tableau dans le cadre du document de requête afin d'utiliser le positional operator .

Par exemple, si vous souhaitez mettre à jour le premier élément du tableau, c'est-à-dire avec { "attributes.name": "x" } alors vous pourriez suivre le modèle :

db.spaces.update(
   { "attributes.name": "x" }, // <-- the array field must appear as part of the query document.
   { "$set": { "attributes.$.weight": 2 } },
   { "multi": true }
)

Pour les nouvelles versions de MongoDB 3.2.X , vous pouvez utiliser le updateMany() méthode pour mettre à jour plusieurs documents dans la collection en fonction du filtre ci-dessus.