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

Comment puis-je mettre à jour plusieurs documents dans mongoose ?

Actuellement, je crois que update() dans Mongoose a quelques problèmes, voir :https://groups.google.com/forum/#%21topic/mongoose-orm/G8i9S7E8Ergand https://groups.google.com/d/topic/mongoose-orm/K5pSHT4hJ_A/discussion .

Cependant, consultez la documentation pour la mise à jour :http://mongoosejs.com/docs/api.html (sous Model). La définition est :

Solution antérieure (dépréciée après la version 5+ de mangouste)

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

Vous devez passer les options à l'intérieur d'un objet, donc votre code serait :

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

Nouvelle solution

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

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

Je crois que Mongoose enveloppe votre cid dans un $set, donc ce n'est pas la même chose que d'exécuter la même mise à jour dans le shell mongo. Si vous l'exécutiez dans le shell, tous les documents seraient remplacés par un seul avec un seul cid: '' .