sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb-fel:Positionsoperatören hittade inte matchningen som behövdes från frågan

Du måste inkludera arrayfältet som en del av frågedokumentet för att kunna använda positional operator .

Om du till exempel vill uppdatera det första arrayelementet, dvs. med { "attributes.name": "x" } sedan kan du följa mönstret:

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

För de nyare MongoDB-versionerna 3.2.X , kan du använda updateMany() metod för att uppdatera flera dokument inom samlingen baserat på filtret ovan.



  1. Använder MongoDB som datakälla i GoLang

  2. TypeError:Kan inte anropa metoden 'get' för undefined

  3. Skrivskyddat filsystem när du försöker mkdir /data/db på Mac

  4. NoSQL-databaser