在mongodb中把一个表中的数据转移到另外一个表中应该如何实现呢?求诸位能不吝赐教,在此先谢过了
mongo shell中实现
db.source.find().forEach(function(doc) {
db.target.insert(doc);
});
或者可以通过mongoexport
+mongoimport
mongoexport -h [ip_address] -d [database] -c [collection] > source.json
mongoimport -h [ip_address] -d [database] -c [target] source.json
3.2以后有一个更好玩的特性——管道。所以:
mongoexport -h [ip_address] -d [database] -c [collection] | mongoimport -h [ip_address] -d [database] -c [target]
同一个Mongodb实例下:
use db_source;
var docs = db_source.collection_souce.find();
use db_target;
docs.forEach(function(d){db.collection_target.insert(d)});
不同Mongodb实例之间
可以使用mongodump和mongorestore
备份:
mongodump -h host:port -d db_source -c collection_source
恢复
mongorestore -h host:port -d db_target -c collection_target dump/collection_source.bson
两个工具的详细使用方式可以参考
mongodump — MongoDB Manual 3.2