Node.js 使用不同的值更新多个文档

Node.js 使用不同的值更新多个文档,node.js,mongodb,Node.js,Mongodb,My Node/Mongo db在名为“prices”的集合中有一个包含以下数据的文档: [ { _id: 1, price : 10 }, {_id: 2, price : 15 }, {_id: 3, price : 12 }] ……等等。我现在从远程站点收到一份更新的文档,如下所示: [ { _id: 1, price : 12 }, {_id: 3, price : 15 }, { _id: 5, price: 20 } ] (some new some updated). 如何

My Node/Mongo db在名为“prices”的集合中有一个包含以下数据的文档:

 [ { _id: 1, price : 10 }, {_id: 2, price : 15 }, {_id: 3, price : 12 }]
……等等。我现在从远程站点收到一份更新的文档,如下所示:

 [ { _id: 1, price : 12 }, {_id: 3, price : 15 }, { _id: 5, price: 20 } ] (some new some updated).
如何将数据更改为:

更新现有记录 插入新记录。
提前感谢。

您根本不需要更改数据,您可以告诉MongoDB执行upsert

for (var i = 0; i < prices.length; i++) {
    var p = prices[i];
    collection.update({_id: p._id}, {$set{price: p.price}}, {upsert:true, w:1}, function(err, result) {
        if (err != null) {
            console.log('Price updated!');
        }
    });   
}   

为了在大量更新中获得更好的性能,您可以使用