В настоящее время я считаю, что update()
в Mongoose имеет некоторые проблемы, смотрите:
https://groups.google.com/forum/#%21topic/mongoose-orm/G8i9S7E8Erg
и https://groups.google.com/d/topic/mongoose-orm/K5pSHT4hJ_A/discussion.
Тем не менее, проверьте документы для обновления: http://mongoosejs.com/docs/api.html (в разделе Модель). Определение:
Предыдущее решение (устарело после версии mongoose 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 в набор $, так что это не то же самое, что запускать то же самое обновление в оболочке mongo. Если вы запустите это в оболочке, тогда все документы будут заменены на один с одним cid: ''
.