sql >> Database >  >> NoSQL >> MongoDB

Mongodb-fout:de positionele operator heeft de vereiste match van de zoekopdracht niet gevonden

U moet het arrayveld opnemen als onderdeel van het querydocument om de positional operator .

Als u bijvoorbeeld het eerste array-element wilt bijwerken, bijvoorbeeld met { "attributes.name": "x" } dan zou je het patroon kunnen volgen:

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

Voor de nieuwere MongoDB-versies 3.2.X , kunt u de updateMany() methode om meerdere documenten binnen de collectie bij te werken op basis van het bovenstaande filter.



  1. Kan niet authenticeren in mongo, auth mislukt

  2. hoe mapreduce te gebruiken in het subdocument mangoest / mongodb?

  3. HDFS-gegevensblok - Leer de interne aspecten van Big Data Hadoop

  4. Omgaan met conflicten bij het zoeken, wijzigen en opslaan in MongoDB met Mongoose