使用C#驱动程序是复制MongoDB集合的更好方法

本文关键字:集合 更好 方法 MongoDB 复制 驱动程序 使用 | 更新日期: 2023-09-27 18:21:55

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

那么,在C#驱动程序中,有没有一种方法可以在同一台服务器上复制集合?有没有办法将整个集合(索引完好无损)复制到另一个服务器?

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

谢谢!

使用C#驱动程序是复制MongoDB集合的更好方法

您可以使用"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);