3

開発用、ステージング用、および本番用に複数の MongoDB サーバーがあり、Dev->Staging および Staging->Live からの展開プロセスの一部を自動化したいと考えています。手動でコレクションを複製するということは、かなり素晴らしい MongoVUE ツール ( http://www.mongovue.com/ ) を使用することを意味しますが、明らかに自動化の理想的なソリューションではありません!

C# ドライバー内から、同じサーバー上にコレクションを複製する方法はありますか? また、コレクション全体 (インデックスはそのまま) を別のサーバーにコピーする方法はありますか?

コレクションをループして、サーバー A からドキュメントを取得し、サーバー B に挿入しようとしました。より良い方法はありますか?

ありがとう!

4

1 に答える 1

6

http://docs.mongodb.org/manual/reference/command/copydb/#dbcmd.copydbで説明されている「copyDB」データベース コマンドを使用できます。

C# では、宛先サーバーで次を実行します。

var command = new CommandDocument(new BsonElement("copydb", 1),
                                  new BsonElement("fromhost", mydbserver),
                                  new BsonElement("fromdb", sourcedb),
                                  new BsonElement("todb", targetdb));
var client = new MongoClient(mydbserver);
var server = client.GetServer();
var db = server.GetDatabase("admin");
db.RunCommand(command);
于 2013-07-10T11:01:51.227 に答える