查找修改并插入到MongoDB的同一集合中

时间:2017-09-27 19:42:15

标签: mongodb mapreduce duplicates mongodb-query

任何人都可以帮我处理MongoDB中的以下案例:

  1. 查找来自Collection A的条件的文件。(假设我们得到了 2个文件)
  2. 修改这两个文档,然后插入到同一个集合A中,不包含令人不安的原始2个文档。
  3. 聚合不支持合并到同一个集合中,我通过简单的javascript获得它,但我们需要MapReduce。

    以下是我的简单脚本:

    db.col1.find({
        "field1": "value"
    }).forEach(function(d1) {
        d1.f2 = NumberInt(d1.f2 / 10);
        db.col1.save(d1)
    })
    

1 个答案:

答案 0 :(得分:0)

在保存修改后的文档d1之前,使用新的ObjectId()更改其_id,这将插入新的d1而不是更新现有的d1:

db.col1.find({"field1" : "value"}).forEach(function(d1)
{ 
  d1.f2 = NumberInt(d1.f2/10);
  d1._id = ObjectId(); 
  db.col1.save(d1);
})