目前我认为update()
在 Mongoose 中存在一些问题,请参阅:
https ://groups.google.com/forum/#%21topic/mongoose-orm/G8i9S7E8Erg
和https://groups.google.com/d/topic/mongoose- orm/K5pSHT4hJ_A/讨论。
但是,请检查文档以获取更新: http: //mongoosejs.com/docs/api.html(在模型下)。定义是:
较早的解决方案(猫鼬5+版本后贬值)
Model.update = function (query, doc, options, callback) { ... }
您需要在对象内传递选项,因此您的代码将是:
Model.update = function ({}, {cid: ''}, {multi: true}, function(err) { ... });
新解决方案
Model.updateMany = function (query, doc, callback) { ... }
Model.updateMany = function ({}, {cid: ''}, function(err) { ... });
我相信 Mongoose 将您的 cid 包装在 $set 中,因此这与在 mongo shell 中运行相同的更新不同。如果您在 shell 中运行它,那么所有文档都将被替换为一个cid: ''
.