具有连接字符串的mongodb身份validation

Mongo进程的连接字符串具有/ database选项。 这是什么意思? 这是否意味着它在mongo服务器上validation特定数据库。提前谢谢

使用C#驱动程序,您通常不会使用在连接字符串上放置数据库名称的选项。 部分支持与其他驱动程序提供某种程度的兼容性。

MongoServer.Create忽略数据库名称。 连接字符串上的任何凭据(用户名/密码)都用作所有数据库的默认凭据。

数据库名称仅由MongoDatabase.Create使用,它调用MongoServer.Create然后只为您调用GetDatabase。

所以:

var connectionString = "mongodb://localhost/database"; var database = MongoDatabase.Create(connectionString); 

只是一个捷径:

 var connectionString = "mongodb://localhost"; var server = MongoServer.Create(connectionString); var database = server.GetDatabase("database"); 

在您首次尝试使用数据库之前,实际上不会进行身份validation。

像这样:

 var cliente = new MongoClient("mongodb://usuariocualquiera:tuclave@localhost:27017/BASEDEDATOS"); 

可以打电话

 var collection = database.GetCollection("CUALQUIERCOLECCION"); 

它将连接到指定的数据库。 如果数据库不存在,它将建立连接,并且在创建新对象时,它将实例化数据库

您将使用admin数据库中创建的用户mongodb和localhost:27017上的密码mongodb创建/返回mongod进程的现有实例。 您不需要调用Connect() – 驱动程序将根据需要自动执行此操作。