如何使用c#驱动程序复制mongo数据库及其所有集合?

时间:2015-05-30 15:21:19

标签: c# mongodb

我正在尝试使用c#driver使用copydb命令复制mongo数据库。 但它只是创建了没有集合的目标数据库。 当我直接使用mongo shell运行命令时,它可以正常工作。

这是c#代码:

var db = mongo.GetServer().GetDatabase("admin");
var command = new CommandDocument(new BsonElement("copydb", 1),
                                  new BsonElement("fromdb", "db1"),
                                  new BsonElement("todb", "db2")
                                 );
var result = db.RunCommand(command);

它不会复制db1的集合。

这是我遇到mongo shell的命令并正常工作:

db.runCommand({copydb:1, fromdb:"db1", todb:"db2"})

我缺少什么?

2 个答案:

答案 0 :(得分:0)

请尝试以下操作:

var result = db.RunCommand(
            new CommandDocument(new BsonElement("copydb", 1),
                new BsonElement("fromhost", "localhost"),
                new BsonElement("fromdb", "sourcedb"),
                new BsonElement("todb", "targetdb")));

答案 1 :(得分:0)

下一个代码有效。它的C#MongoDB.Driver 2.0

var database = mongoClient.GetDatabase("admin");
var command = @"{ copydb: 1, fromhost: 'localhost', fromdb: 'from', todb: 'toDbName'}";
await database.RunCommandAsync<BsonDocument>(BsonDocument.Parse(command));