网站群管理平台方案四年级新闻摘抄大全
方法一:使用 aggregate() 搭配 $out(推荐方式)
适用于复制到相同数据库内的新集合。
db.source_collection.aggregate([{ $match: {} }, // 可以加筛选条件{ $out: "target_collection" }
])
- 如果目标集合已存在,会被覆盖。
- 如果你使用 MongoDB 5.0+,推荐用 $merge 替代 $out(因为 $out 会 drop 再重建)。
方法二:使用 cloneCollection() 脚本(适用于任意数据库)
// 脚本方式
db.getCollection('source_collection').find().forEach(function(doc) {db.getCollection('target_collection').insert(doc);
});
- 可以在 mongo shell 或 JavaScript 驱动里执行。
- 可加筛选条件:如
find({ status: "active" })
方法三:通过 mongodump + mongorestore(适合跨数据库或跨服务器)
1. 导出
mongodump -d mydb -c source_collection -o dump/
2. 恢复
mongorestore -d mydb -c target_collection dump/mydb/source_collection.bson
- 适合数据量大时使用。
- 可跨数据库 / 集群 / 远程主机。
方法四:在程序中操作(如 Python)
from pymongo import MongoClientclient = MongoClient()
db = client["mydb"]source = db["source_collection"]
target = db["target_collection"]docs = source.find({})
target.insert_many(docs)