MongoDB使用JavaScript更新所有文档

时间:2015-04-03 08:15:32

标签: mongodb

假设我收集了以下数据。

{
     _id: ObjectID(....),
     ...
     data : [ 23, 34]
}

我有以下JavaScript功能。

function reduce(array){
    //some computation
    return result; // not array
}

有没有办法使用具有以下净效果的MongoDB shell更新所有集合。

{
    data : reduce(data)
}

编辑:

我希望在迁移过程中只执行一次。

1 个答案:

答案 0 :(得分:1)

当然,您可以使用MongoDB cursor迭代cursor.forEach() method并使用db.collection.save() method保存已处理的文档,例如:

db.collection.find().forEach(function(doc) {
  doc.data = reduce(doc.data); // update field
  db.collection.save(doc); // save
})