在这篇文章中[使用C#驱动程序复制mongo数据库] [1]描述了使用新的Mongo C#驱动程序复制数据库的解决方案。
我的身份验证问题,我在mongodb中设置了授权,现在如果我从RoboMongo发出一个copydatabase一切正常,但如果我尝试从C#Driver运行命令我得到
MongoDB.Driver.MongoCommandException: 'Command copydb failed:
listCollections failed: { ok: 0.0, errmsg: "not authorized on xxxxx
to execute command { listCollections: 1, filter: {}, cursor: {} }",
code: 13 }.'
我想知道为什么copy database命令在RoboMongo中与同一用户一起使用,但在C#代码执行时失败并带有授权。
答案 0 :(得分:0)
实际上我找到了原因而且非常奇怪,你只需要从命令中删除fromDb参数。
var command = String.Format(@"{{ copydb: 1, fromdb: '{0}', todb: '{1}'}}", sourceUrl.DatabaseName, destinationUrl.DatabaseName);
我已经使用了上面的命令,我只指定fromDb和toDb,一切正常。可能是fromDb:' localhost'由于某种原因搞砸了身份验证。
吉安玛丽亚。