sql >> Base de Datos >  >> NoSQL >> MongoDB

Error de Mongodb:el operador posicional no encontró la coincidencia necesaria de la consulta

Debe incluir el campo de matriz como parte del documento de consulta para usar positional operator .

Por ejemplo, si desea actualizar el primer elemento de la matriz, es decir, con { "attributes.name": "x" } entonces podrías seguir el patrón:

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

Para las versiones más nuevas de MongoDB 3.2.X , podría usar updateMany() método para actualizar varios documentos dentro de la colección según el filtro anterior.