Ciertamente puede almacenar todos sus documentos en una colección, sin embargo, probablemente sea más fácil y más limpio a largo plazo almacenar solo un tipo en una colección (desde una perspectiva de C#). Puede hacerlo creando una clase con un método de extensión en MongoDatabase.
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
Luego, puede simplemente llamar a GetCollection con su tipo y el nombre se ocultará de su código general. También puedes crear algo como esto para abstraer las cosas un poco más:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
Con esto solo puedes hacer
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Este Find
mapeará para ejecutar contra los Objects
colección, simplemente reemplace <object>
con su tipo y asigne un nombre a la colección.