mongodb怎么实现两个表之间的数据转移

在mongodb中把一个表中的数据转移到另外一个表中应该如何实现呢?求诸位能不吝赐教,在此先谢过了

阅读 5.3k
2 个回答

同一个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

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]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题