¿Cómo puedo actualizar varios documentos en mongoose

Encontré el siguiente script:

Device.find(function(err, devices) { devices.forEach(function(device) { device.cid = ''; device.save(); }); }); 

MongoDB tiene la bandera “multi” para una actualización de varios documentos, pero no pude hacer que esto funcionara con mongoose. ¿Esto todavía no es compatible o estoy haciendo algo mal?

 Device.update({}, {cid: ''}, false, true, function (err) { //... }); 

Actualmente, creo que la update() en Mongoose tiene algunos problemas, mira: https://groups.google.com/forum/#%21topic/mongoose-orm/G8i9S7E8Erg y https://groups.google.com/d/topic / mongoose-orm / K5pSHT4hJ_A / discusión .

Sin embargo, verifique los documentos para la actualización: http://mongoosejs.com/docs/api.html (en Modelo). La definición es:

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

Debes pasar las opciones dentro de un objeto, para que tu código sea:

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

Creo que Mongoose envuelve tu cid en $ set, por lo que no es lo mismo que ejecutar esa misma actualización en el shell mongo. Si ejecutó eso en el shell, todos los documentos serían reemplazados por uno con un solo cid: '' .

Tienes que usar la opción multi: true

 Device.update({},{cid: ''},{multi: true});