12

と という名前の 2 つのデータベースがDB_AありDB_Bます。

各データベースには、 と呼ばれる同じ名前のコレクションが 1 つありますstore

両方のコレクションには、まったく同じ構造を持つドキュメントがたくさんあります{ key:" key1", value: "value1" }

実際には、DB_Aすべてのドキュメントを に作成して挿入するだけでしたDB_A。しかし、後で 2 回目の挿入を行ったときに、間違った名前をデータベース名として入力してしまいました。

各データベースのサイズが 32GB になったので、2 つのデータベースをマージしたいと考えています。

問題/制約の 1 つは、現在利用可能な空き容量が 15 GB しかないため、~ からまでcopyのすべてのものだけを保存することはできません。DB_BDB_A

2 つのデータベースをマージするために何らかの「移動」を実行できるかどうか疑問に思っています。単純に 32GB を再挿入DB_Aするにはかなりの時間がかかるので、私は最も効率的な方法を好みます。

4

2 に答える 2

8

最も簡単な (そしておそらく唯一の) 方法は、2 つのデータベースのドキュメントを次から次へとマージするスクリプトを作成することだと思います。

  1. DB_B から最初のドキュメントを取得します。
  2. 必要に応じて DB_A に挿入します。
  3. DB_B から削除します。
  4. 完了するまで繰り返します。

ソース データベース (DB_B) からドキュメントを削除する代わりに、ドキュメントをバッチで読み取ることができます。これはパフォーマンスが向上するはずですが、コーディングが少し難しくなります (特に、そのようなことをしたことがない場合)。

于 2012-06-13T11:56:07.457 に答える