MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDb сериализира генерични типове (класове)

Със сигурност можете да съхранявате всичките си документи в една колекция, но вероятно е по-лесно и по-чисто в дългосрочен план да съхранявате само един тип в колекция (от гледна точка на C#). Можете да направите това, като създадете клас с метод за разширение в MongoDatabase.

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> с вашия тип и дайте име на колекцията.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoid не е под въпрос

  2. Как да активирам удостоверяване на MongoDB чрез Docker?

  3. MongoError:топологията е разрушена sailsjs

  4. Как да осъществите достъп до localhost на хоста от вътрешността на клъстера kubernetes

  5. Как да актуализирам/вставя документ в Mongoose?