如何在MongoDB中执行一次性数据库同步到另一个数据库?

ace*_*lot 10 database synchronization mongodb

我有单独的开发和生产MongoDB服务器,我想在开发服务器中保留实际数据一段时间.我应该用它:mongodump,mongoimport还是别的什么?

澄清:我想将数据从生产复制到开发.

She*_*yar 10

如果这是一次性的事情

并且您希望精确控制参数,例如要同步的集合,您应该使用:

  • mongodump将生产数据库的bson文件转储到本地计算机
  • 然后在 mongorestore中检索本地数据库中的转储BSON文件

否则你应该检查mongo-sync

这是我为自己编写的一个脚本,当我不得不经常将我的本地MongoDB数据库复制到我的生产数据库以进行项目时(我知道这是愚蠢的).

将数据库详细信息放入后config.yml,可以使用两个简单的命令开始同步:

./mongo-sync push       # Push DB to Remote
./mongo-sync pull       # Pull DB to Local
Run Code Online (Sandbox Code Playgroud)

如果你使用它的一些项目里面,这是一个好主意,加入config.yml.gitignore

mongo-sync demo gif

  • 出于兴趣,你为什么说它是愚蠢的?在开始项目之前,我正在研究如何处理这种情况 - 有没有更好的方法来处理 mongodb 的开发/生产方面? (2认同)

Tho*_*mas 7

您可以使用db.copyDatabase(...)db.cloneDatabase(...)命令:

http://www.mongodb.org/display/DOCS/Copy+Database+Commands

这比mongodump/mongorestore快,因为它会跳过在磁盘上创建bson表示.

  • **mongoDB 4.2**:_从版本 4.2 开始,MongoDB 删除了已弃用的 copydb 命令和克隆命令。_ https://docs.mongodb.com/manual/release-notes/4.2-compatibility/#remove-support-for- copydb 和克隆命令 (4认同)