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

时间:2014-09-19 22:17:27

标签: node.js mongodb

My Node / Mongo数据库在一个名为'价格'

的集合中有一个包含以下数据的文档
 [ { _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).

如何将数据更改为:

  1. 更新退出记录
  2. 插入新记录。
  3. 提前谢谢。

1 个答案:

答案 0 :(得分:0)

您根本不需要更改数据,可以告诉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!');
        }
    });   
}