我有多个用于开发,登台和制作的MongoDB服务器,我想从Dev-> Staging和Staging-> Live自动化一些部署过程。手动复制集合意味着使用相当神奇的MongoVUE工具(http://www.mongovue.com/),但显然这不是自动化的理想解决方案!
所以从C#驱动程序中,有没有办法在同一台服务器上复制一个集合?有没有办法将整个集合(索引完整)复制到另一台服务器?
我尝试循环访问集合,从服务器A检索文档,然后将它们插入服务器B.这种方法感觉笨拙,冗长且容易出错。还有更好的方法吗?
谢谢!
答案 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);