2017-01-20 5 views
2

私はデータベースAに多くのコレクションを持っていますが、そのうちのいくつかをデータベースBに同じMongoDBにコピーしたいと思います。コレクションをあるDBから同じMongoDBインスタンス内の別のDBに移動する

db.copyDatabase('A', 'B')を使用してデータベース全体をコピーしようとしましたが、300 GB以上のデータがあります。コピーするには時間がかかります。データベースAからデータベースBまで、いくつかのコレクションをコピーしたいだけです。

どのようにすればいいですか?コレクションをダンプする

答えて

2

あなたはモンゴシェルを使用して、それを試すことができます。 renameCollectionを使用して1つのデータベースから別のデータベースにコレクションをコピーできます。 renameCollectionの管理者データベースから実行できますので、最初にadmin dbに切り替える必要があります。

のでMongoのシェルでベローズの手順に従うCA:

ステップ1:ランこのコメントuse admin

ステップ2:ラン蛇腹コメント

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

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

コピーcountriesコレクション漏斗dbから試験dbをコピーしました。背景のMongoDBでは

は、ソースコレクションのためのダンプを作成し、DBのコレクションに答えるため

+0

これは完璧に動作しています!どうもありがとうございます 。あなたがコレクション名を変更したいときだけrenameCollectionが動作すると私は思った! –

+0

また、別のコレクションを1つのクエリに入れたり、毎回1つのコレクションしか移動できないのではないかと思います。私は試みるつもりです –

+0

これは、コピーではなくコレクションを移動します(名前が変更されたものです) – Bajal

1

使用mongodump

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

、その後はmongorestoreを使用してコレクションをインポートします。

mongorestore --db B --collection coll yourbackupdir/ 
+0

感謝をターゲットに自動的にダンプを復元します。しかし、私の場合は、データベース全体をダンプするのはあまりにも多いので、コレクションをほとんど移動しません。 –

関連する問題