2017-09-14 37 views

回答

2

如果你只是想複製簡單的方法是像下面

db.col1.find({},{_id:0}).forEach(function(doc){db.col1.save(doc)}); 
0

快速,但也許不是最有效的方式做到這一點可能是:

  • 獲取集合中的所有文件
  • 對於每一個用新值重寫ObjectId
  • 在集合中插入修改過的文檔

隨着蒙戈外殼,你能做到這一點使用的forEach如下:

db.getCollection('YOUR_COLLECTION').find({}).forEach(
    function(doc){ 
     doc._id = new ObjectId(); 
     db.getCollection('YOUR_COLLECTION').insert(doc); 
    } 
) 

這樣,每次運行此查詢時,集合中的所有文件都複製。

相關問題