Cập nhật:
MongoServer.Create
hiện đã lỗi thời (nhờ @ aknuds1). Thay vào đó, hãy sử dụng mã sau:
var _server = new MongoClient(connectionString).GetServer();
Dễ thôi. Trước tiên, bạn nên lấy tên cơ sở dữ liệu từ chuỗi kết nối và sau đó lấy cơ sở dữ liệu theo tên. Toàn bộ ví dụ:
var connectionString = "mongodb://localhost:27020/mydb";
//take database name from connection string
var _databaseName = MongoUrl.Create(connectionString).DatabaseName;
var _server = MongoServer.Create(connectionString);
//and then get database by database name:
_server.GetDatabase(_databaseName);
Quan trọng : Nếu cơ sở dữ liệu của bạn và cơ sở dữ liệu auth khác nhau, bạn có thể thêm tham số authSource = query để chỉ định một cơ sở dữ liệu auth khác. (cảm ơn bạn @chrisdrobison )
Từ tài liệu:
LƯU Ý Nếu bạn đang sử dụng phân đoạn cơ sở dữ liệu làm cơ sở dữ liệu ban đầu để sử dụng, nhưng tên người dùng và mật khẩu được chỉ định được xác định trong một cơ sở dữ liệu khác, bạn có thể sử dụng tùy chọn authSource để chỉ định cơ sở dữ liệu mà thông tin đăng nhập được xác định. Ví dụ: mongodb: // user: pass @ hostname / db1? AuthSource = userDb sẽ xác thực thông tin đăng nhập dựa trên cơ sở dữ liệu userDb thay vì db1.