public string MongoDBFirstTest() { var mgConnStrBuilder = new MongoConnectionStringBuilder(); mgConnStrBuilder.Username = "root"; mgConnStrBuilder.Password = "xxxx"; mgConnStrBuilder.AddServer("localhost"); mgConnStrBuilder.Database = "Zuowjdb"; //链接字符串 string connectionString = mgConnStrBuilder.ToString(); //"mongodb://root:xxxx@localhost/Zuowjdb"; //数据库名 string databaseName = "Zuowjdb"; //集合名 string collectionName = "Test"; //定义Mongo服务 Mongo mongo = new Mongo(connectionString); //链接数据库 mongo.Connect(); //获取databaseName对应的数据库,不存在则自动创建 MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase; //获取collectionName对应的集合,不存在则自动创建 MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>; try { //定义一个文档对象,存入两个键值对 Document doc = new Document(); doc["ID"] = 1; doc["Msg"] = "Hello MongoDB!"; //将这个文档对象插入集合 mongoCollection.Insert(doc); //在集合中查找键值对为ID=1的文档对象 //Document docFind = mongoCollection.FindOne(new Document { { "ID", 1 } }); //输出查找到的文档对象中键“Msg”对应的值,并输出 // return docFind["Msg"].ToString(); var docfinds = mongoCollection.Find(new { ID = 1 }); string result = null; foreach (var item in docfinds.Documents) { result += item.Get("Msg") + ","; } mongoCollection.Remove(new { ID = 1 }); return result; } finally { //关闭链接 mongo.Disconnect(); } }
如上代码,运行到mongoCollection.Insert(doc);就报Authentication faild for root,即认证失败,我在mongodb客户端上试了一下,是OK的,截图如下:
求解啊!难道非要用官方的.NET 驱动吗?
samus 驱动应该好久没有更新了吧,况且mongodb已经更新了好多版本了,而且官方里面的驱动推荐里面已经没有它了,所以还是用官方的驱动吧,兼容的mongodb版本更广
经确认,确实Samus对于身份验证无法通过,只能使用官方的驱动,谢谢你的提醒。
对不齐,我用的是官方驱动