mongodb转储和管道到其他数据库名称

时间:2017-05-23 13:17:29

标签: mongodb mongodump mongorestore

Mongodb版本3.2.12。我有两个本地数据库,“base1”和“base2”

我想将所有数据(所有集合)从base1复制到base2,替换那里的所有内容(比如将生产转储到开发环境时)。

执行此操作的任何管道命令(或其他简单方法)?

我试过

mongodump --archive --db base1 | mongorestore --db base2 --archive

列出了很多“在stdout上写入base2.collectionname”,但没有任何内容写入base2。

我也试过

mongodump --db base1 --gzip --archive=/path/to/file.gz
mongorestore --db base2 --gzip --archive=/path/to/file.gz

转储工作,恢复只是说“为归档创建意图”,“完成”

2 个答案:

答案 0 :(得分:0)

我使用以下命令:

request(options, function(error, response, html) {

	if (!error && response.statusCode == 200) {

		var productData = {};

		// access html with JQUERY
		var $ = cheerio.load(html);

		// is it possible to access global 
    // page variables here ?
    
	}
}

mongodump \
    --host ${mongo.host} \
    --port ${mongo.port} \
    --username ${mongo.backup_restore_user} \
    --password ${mongo.backup_restore_password} \
    --db ${mongo.db} \
    --gzip \
    --dumpDbUsersAndRoles \
    --archive=${archive}

答案 1 :(得分:0)

我遇到了同样的问题,经过谷歌搜索和搜索后,我发现了这篇文章 https://stackoverflow.com/a/43810346/3785901

我尝试了以下命令:

mongodump --host HOST:PORT --db SOURCE_DB --username USERNAME --password PASSWORD --archive | mongorestore --host HOST:PORT --nsFrom 'SOURCE_DB.*' --nsTo 'TARGET_DB.*' --username USERNAME --password PASSWORD  --archive --drop

,它就像一种魅力。 它应该适合您的情况,祝您好运。