確かにすべてのドキュメントを1つのコレクションに保存できますが、長期的には、コレクションに1つのタイプのみを保存する方が簡単でクリーンです(C#の観点から)。これを行うには、MongoDatabaseでExtensionメソッドを使用してクラスを作成します。
public static class MyDatabase
{
public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
{
var name = typeof(T).Name;
return db.GetCollection<T>(name);
}
}
次に、タイプを指定してGetCollectionを呼び出すだけで、名前は一般的なコードから非表示になります。このようなものを作成して、物事をもう少し抽象化することもできます:
public class MyDatabase
{
private MongoDatabase _db;
public MyDatabase(MongoDatabase db)
{
_db = db;
}
public MongoCollection<object> Objects
{
get
{
return _db.GetCollection<object>();
}
}
}
これであなたはただすることができます
var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();
このFind
Objects
に対して実行するようにマップされます コレクション、<object>
を置き換えるだけです タイプを指定して、コレクションに名前を付けます。