sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu aktualizovat více dokumentů v mongoose?

V současné době se domnívám, že update() v Mongoose má nějaké problémy, viz:https://groups.google.com/forum/#%21topic/mongoose-orm/G8i9S7E8Ergand https://groups.google.com/d/topic/mongoose-orm/K5pSHT4hJ_A/discussion .

Zkontrolujte však aktualizaci dokumentů:http://mongoosejs.com/docs/api.html (je pod Model). Definice je:

Dřívější řešení (odpisováno po verzi mongoose 5+)

Model.update = function (query, doc, options, callback) { ... }

Musíte předat možnosti uvnitř objektu, takže váš kód by byl:

Model.update = function ({}, {cid: ''}, {multi: true}, function(err) { ... });

Nové řešení

Model.updateMany = function (query, doc, callback) { ... }

Model.updateMany = function ({}, {cid: ''}, function(err) { ... });

Věřím, že Mongoose zabalí váš cid do $setu, takže to není totéž jako spuštění stejné aktualizace v mongo shellu. Pokud byste to spustili v shellu, všechny dokumenty by byly nahrazeny jedním s jediným cid: '' .



  1. MongoDB findAndModify()

  2. Připojení k MongoDB přes SSL s Node.js

  3. Vytvořte reaktivní publikaci s dalšími poli v každém dokumentu

  4. Operátoři MongoDB $gt/$lt s cenami uloženými jako řetězce