我想克隆MongoDB集合并将其保存在具有不同名称的同一服务器上.例如,我现在有以下集合:demo1.categories,demo1.users和demo2.users.
我想要一个"demo2.categories",它与"demo1.categories"相同.(它只是有一个不同的名字.)
lha*_*ann 82
假设该集合实际上被命名为"demo1.categories":
db.demo1.categories.find().forEach( function(x){db.demo2.categories.insert(x)} );
Run Code Online (Sandbox Code Playgroud)
Abd*_*ady 30
最简单有效的方法是使用copyTo(),这样你就可以使用:
db.source.copyTo("target");
Run Code Online (Sandbox Code Playgroud)
&if如果"target"不存在,将创建它
- 更新 -
根据CopyTo文档,因为在copyTo()内部使用eval,复制操作将阻止mongod实例上的所有其他操作.所以不应该在生产环境中使用它.
- 更新 -
因为从内部CopyTo()使用eval()&eval()从3.0版开始不推荐使用,所以CopyTo()从版本3.0开始也不推荐使用.
Tut*_*men 24
这是克隆集合的最快方法:
mongoexport -d db_name -c src_collection | mongoimport -d db_name -c dst_collection --drop
Run Code Online (Sandbox Code Playgroud)
它会克隆src_collection在DB_NAME到dst_collection.或者你可以在bson级别上分两步完成:
mongodump -d db_name -c src_collection
mongorestore --drop -d db_name -c dst_collection ./dump/db_name/src_collection.bson
Run Code Online (Sandbox Code Playgroud)
tej*_*zpr 15
最快的选择是
db.myoriginal.aggregate([ { $out: "mycopy" } ])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47536 次 |
| 最近记录: |