如何更新mongodb本地nodejs驱动程序中的多个文件?

萨拉姆(手段你好):)

我正在运行mongodb 2.4.8和Mongo DB本机NodeJS驱动程序 。 当我使用下面的函数时,只有匹配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版本,这个驱动版本是否支持多更新? 如果没有,我怎样才能安装更新版本的驱动程序支持多更新?

您需要在update调用中设置multi 选项来更新所有匹配的文档,而不仅仅是第一个:

 db.collection(coll).update(query, update, {w:1, multi: true}, callback); 

你可以调用updateMany来达到这个目的:

 db.collection(coll).updateMany(query, update, callback);