The connection string for Mongo process has /database option . What does it mean? Does it mean it authenticates the particular database on mongo server.Thanks in advance
问题:
回答1:
With the C# driver you typically would not use the option of putting a database name on the connection string. It is partially supported to provide some level of compatibility with other drivers.
MongoServer.Create ignores the database name. Any credentials (username/password) on the connection string are used as default credentials for all databases.
The database name is only used by MongoDatabase.Create, which calls MongoServer.Create and then just calls GetDatabase for you.
So:
var connectionString = "mongodb://localhost/database";
var database = MongoDatabase.Create(connectionString);
is just a shortcut for:
var connectionString = "mongodb://localhost";
var server = MongoServer.Create(connectionString);
var database = server.GetDatabase("database");
No authentication actually happens until you first try to use a database.
回答2:
Like this:
var cliente = new MongoClient("mongodb://usuariocualquiera:tuclave@localhost:27017/BASEDEDATOS");
and could be call
var collection = database.GetCollection<BsonDocument>("CUALQUIERCOLECCION");
回答3:
It will connect to the named database. If the database is not present it will make a connection and upon creating a new object it will instantiate the database
回答4:
You will create/return existing instance of the mongod process with user mongodb created in the admin database and password mongodb on localhost:27017. You shouldn't need to call Connect() - the driver will do this automatically as required.