Du kan säkert lagra alla dina dokument i en samling, men det är förmodligen enklare och renare i längden att bara lagra en typ i en samling (ur ett C#-perspektiv). Du kan göra detta genom att skapa en klass med en Extension Method 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);
}
}
Sedan kan du bara ringa GetCollection med din typ på så kommer namnet att döljas från din allmänna kod. Du kan också skapa något sånt här för att abstrahera saker lite längre:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
Med detta kan du bara göra
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Denna Find
kommer att mappas för att köras mot Objects
samling, ersätt bara <object>
med din typ och ge samlingen ett namn.