如何在MongoDB中复制记录/文档?

时间:2019-02-19 13:57:44

标签: mongodb

我想基于MongoDB中的一个字段复制我的文档。 请参阅以下文件: a:1,b:2,c:3, a:2,b:2,c:3, a:1,b:4,c:3, a:2,b:2,c:3, a:1,b:5,c:6 所以,我想要a = 1的文档副本。

输出应如下所示: a:1,b:2,c:3, a:2,b:2,c:3, a:1,b:4,c:3, a:2,b:2,c:3, a:1,b:5,c:6, a:1,b:2,c:3, a:1,b:4,c:3, a:1,b:5,c:6

1 个答案:

答案 0 :(得分:0)

假设您使用mongo Shell进行此操作,一种方法可能是如下迭代查询游标:

db.collection.find({ a: 1 }, { _id: 0 }).forEach(function(doc)) {
    db.collection.insert(doc);
});

以上代码的作用是:

  1. 查询与a = 1相匹配的所有文档
  2. 投影结果没有_id
  3. 使用forEach方法迭代光标
  4. Insert将文档的副本复制到源集合中。

请注意,由于我们删除了原始文档的_id,因此插入内容会创建一个副本。如果未指定,则MongoDB将自动创建此值(使用ObjectId)。