假设我收集了以下数据。
{
_id: ObjectID(....),
...
data : [ 23, 34]
}
我有以下JavaScript功能。
function reduce(array){
//some computation
return result; // not array
}
有没有办法使用具有以下净效果的MongoDB shell更新所有集合。
{
data : reduce(data)
}
编辑:
我希望在迁移过程中只执行一次。
答案 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
})