Du kan helt sikkert gemme alle dine dokumenter i én samling, men det er nok nemmere og renere i det lange løb kun at gemme én type i en samling (fra et C#-perspektiv). Du kan gøre dette ved at oprette en klasse med en udvidelsesmetode på MongoDatabase.
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
Så kan du bare ringe til GetCollection med din type på, og navnet vil blive skjult fra din generelle kode. Du kan også lave noget som dette for at abstrahere tingene lidt længere:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
Med dette kan du bare gøre
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Denne Find
vil kortlægges for at udføre mod Objects
samling, skal du blot erstatte <object>
med din type og giv samlingen et navn.