Anda tentu saja dapat menyimpan semua dokumen Anda dalam satu koleksi, namun mungkin lebih mudah dan lebih bersih dalam jangka panjang untuk hanya menyimpan satu jenis dalam satu koleksi (dari perspektif C#). Anda dapat melakukannya dengan membuat kelas dengan Metode Ekstensi di MongoDatabase.
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
Kemudian Anda bisa memanggil GetCollection dengan tipe Anda di atasnya dan namanya akan disembunyikan dari kode umum Anda. Anda juga dapat membuat sesuatu seperti ini untuk mengabstraksikan hal-hal sedikit lebih jauh:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
Dengan ini Anda hanya dapat melakukan
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Find
. ini akan dipetakan untuk dieksekusi terhadap Objects
koleksi, cukup ganti <object>
dengan tipe Anda dan beri nama koleksi tersebut.