Bạn chắc chắn có thể lưu trữ tất cả tài liệu của mình trong một bộ sưu tập, tuy nhiên, về lâu dài có lẽ dễ dàng hơn và gọn gàng hơn nếu chỉ lưu trữ một loại trong một bộ sưu tập (từ góc độ C #). Bạn có thể thực hiện việc này bằng cách tạo một lớp có Phương thức mở rộng trên MongoDatabase.
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
Sau đó, bạn chỉ có thể gọi GetCollection với loại của bạn trên đó và tên sẽ được ẩn khỏi mã chung của bạn. Bạn cũng có thể tạo một cái gì đó như thế này để trừu tượng hóa mọi thứ xa hơn một chút:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
Với điều này, bạn chỉ có thể làm
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Find
này sẽ ánh xạ để thực thi đối với Objects
bộ sưu tập, chỉ cần thay thế <object>
với loại của bạn và đặt tên cho bộ sưu tập.