使用C#驱动程序它们是复制和复制MongoDB集合的更好方法吗?

时间:2013-07-10 01:05:19

标签: c# mongodb mongodb-.net-driver

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

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

我尝试循环访问集合,从服务器A检索文档,然后将它们插入服务器B.这种方法感觉笨拙,冗长且容易出错。还有更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分: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);