Mongo进程的连接字符串具有/ database选项。这是什么意思?这是否意味着它在mongo服务器上验证特定数据库。提前谢谢
答案 0 :(得分:5)
使用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");
在您首次尝试使用数据库之前,实际上不会进行身份验证。
答案 1 :(得分:1)
像这样:
var cliente = new MongoClient("mongodb://usuariocualquiera:tuclave@localhost:27017/BASEDEDATOS");
可以打电话
var collection = database.GetCollection<BsonDocument>("CUALQUIERCOLECCION");
答案 2 :(得分:0)
它将连接到指定的数据库。 如果数据库不存在,它将建立连接,并且在创建新对象时,它将实例化数据库
答案 3 :(得分:0)
您将使用admin数据库中创建的用户mongodb和localhost:27017上的密码mongodb创建/返回mongod进程的现有实例。您不需要调用Connect() - 驱动程序将根据需要自动执行此操作。
答案 4 :(得分:0)
假设在admin数据库中创建了用户帐户,并假设您使用的是名为“ mongo”的命令行界面(CLI)程序,则可以使用以下用户名和密码连接到3节点副本集:
语法:
mongo --host "<replicaset name>/<host 1 resolvable name>:<host 1 port>,<host 2 resolvable name>:<host 2 port>,<host 3 resolvable name>:<host 3 port>" --username <username> --password <password> --authenticationDatabase <database name>
示例:
mongo --host "replset1/ip-172-31-48-110.eu-west-1.compute.internal:27017,ip-172-31-116-186.eu-west-1.compute.internal:27017,ip-172-31-29-140.eu-west-1.compute.internal:27017" --username barry --password supersecretpassword --authenticationDatabase admin