将集合从一个DB移动到同一MongoDB实例中的另一个DB

时间:2017-01-20 05:26:56

标签: mongodb

我在数据库A中有很多集合。我想将其中一些集合复制到同一个MongoDB中的数据库B.

我尝试使用db.copyDatabase('A', 'B')复制整个数据库,但它有超过300 GB个数据。复制需要很长时间,我只想将数据库A中的一些集合复制到数据库B.

有谁知道我该怎么做?

2 个答案:

答案 0 :(得分:6)

您可以使用mongo shell尝试。您可以使用renameCollection将集合从一个数据库复制到另一个数据库。 renameCollection可以从 admin 数据库运行,因此首先需要切换到 admin db

所以请按照mongo shell中的步骤进行操作:

步骤1:运行此评论use admin

第2步:运行以下评论

db.runCommand({renameCollection:"sourcedb.sourceCollection",to:"targetdb.tragetCollection"})

例如:

use admin
db.runCommand({renameCollection:"funnel.countries",to:"test.countries"})

漏斗数据库中的countries 集合复制到测试数据库。

在后台,MongoDB将为源集合创建转储,并自动将转储还原到目标数据库集合

答案 1 :(得分:1)

使用mongodump转储集合:

mongodump  --db A --collection coll --out yourbackupdir

然后使用mongorestore导入集合:

mongorestore --db B --collection coll yourbackupdir/