3

我有多个用于开发、登台和生产的 MongoDB 服务器,我想从 Dev->Staging 和 Staging->Live 自动化一些部署过程。手动复制集合意味着使用相当出色的 MongoVUE 工具 ( http://www.mongovue.com/ ),但显然这不是自动化的理想解决方案!

那么从 C# 驱动程序中,有没有办法在同一台服务器上复制一个集合?有没有办法将整个集合(索引完整)复制到不同的服务器?

我尝试过遍历集合,从服务器 A 检索文档,然后将它们插入服务器 B。这种方法感觉笨拙、冗长且容易出错。有没有更好的办法?

谢谢!

4

1 回答 1

6

您可以使用“copyDB”数据库命令,如下所述:http ://docs.mongodb.org/manual/reference/command/copydb/#dbcmd.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 回答