Určitě můžete uložit všechny své dokumenty do jedné kolekce, ale z dlouhodobého hlediska je pravděpodobně jednodušší a čistší uložit do kolekce pouze jeden typ (z pohledu C#). Můžete to udělat vytvořením třídy s metodou rozšíření na MongoDatabase.
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
Pak stačí zavolat GetCollection s vaším typem a název bude skryt z vašeho obecného kódu. Můžete také vytvořit něco takového, abyste abstrahovali věci o něco dále:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
S tím to můžete udělat
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Toto Find
se namapuje na provedení proti Objects
kolekce, jednoduše nahraďte <object>
s vaším typem a pojmenujte sbírku.