Salam(意为你好):)
我正在运行mongodb 2.4.8和Mongo DB Native NodeJS Driver。当我使用以下函数时,只有匹配query
更新的第一个文档。如何更新所有匹配的文件?
function update(coll, query, update, callback){
var options = options || {};
MongoClient.connect('mongodb://127.0.0.1:27017/dbName', function(error, db) {
if(error){
return console.dir(error);
}
db.collection(coll).update(query, update, {w:1}, function(error, result) {
callback(error, result);
});
});
}
我通过npm install mongodb
命令安装了我的mongodb驱动程序,该命令安装了版本1.3.23
,此驱动程序版本是否支持多次更新?如果没有,我如何安装较新版本的驱动程序支持多次更新?
答案 0 :(得分:2)
您需要在multi
来电中设置update
option来更新所有匹配的文档,而不仅仅是第一个:
db.collection(coll).update(query, update, {w:1, multi: true}, callback);
答案 1 :(得分:2)
您可以调用updateMany来实现此目的:
db.collection(coll).updateMany(query, update, callback);