Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#驱动程序是复制和复制MongoDB集合的更好方法吗?_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

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

使用C#驱动程序是复制和复制MongoDB集合的更好方法吗?,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我有多个MongoDB服务器用于开发、登台和生产,我想从dev->staging and staging->Live自动化一些部署过程。手工复制收藏意味着使用相当出色的MongoVUE工具(),但这显然不是自动化的理想解决方案 那么,在C#驱动程序中,有没有办法在同一台服务器上复制一个集合?有没有办法将整个集合(索引保持不变)复制到不同的服务器 我尝试过在集合中循环,从服务器A检索文档,然后将它们插入服务器B。这种方法感觉笨拙、冗长而且容易出错。有更好的办法吗 谢谢 您可以使用“copyDB”数

我有多个MongoDB服务器用于开发、登台和生产,我想从dev->staging and staging->Live自动化一些部署过程。手工复制收藏意味着使用相当出色的MongoVUE工具(),但这显然不是自动化的理想解决方案

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

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

谢谢

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

为什么不使用mongodump和mongorestore?好吧,但我如何从C#驱动程序中实现这一点?我想我可能遗漏了一些明显的东西。很抱歉