sql >> Databáze >  >> NoSQL >> MongoDB

MongoDb serializuje obecné typy (třídy)

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.




  1. Existuje způsob, jak spustit mongoda z webstormu (mac)

  2. Prvek aktualizace Node.js v MongoDB

  3. Projekt s Match v souhrnu nefunguje v mongodb

  4. Hromadné vkládání Redis