Puoi certamente archiviare tutti i tuoi documenti in una raccolta, tuttavia è probabilmente più facile e più pulito a lungo termine archiviare solo un tipo in una raccolta (da una prospettiva C#). Puoi farlo creando una classe con un metodo di estensione su MongoDatabase.
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
Quindi puoi semplicemente chiamare GetCollection con il tuo tipo e il nome sarà nascosto dal tuo codice generale. Puoi anche creare qualcosa di simile per astrarre le cose un po' di più:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
Con questo puoi semplicemente fare
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
Questo Find
mapperà per essere eseguito contro gli Objects
collection, sostituisci semplicemente <object>
con il tuo tipo e dai un nome alla collezione.