MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDb serializuje typy ogólne (klasy)

Z pewnością możesz przechowywać wszystkie swoje dokumenty w jednej kolekcji, jednak na dłuższą metę prawdopodobnie łatwiej i czystsze jest przechowywanie tylko jednego typu w kolekcji (z perspektywy C#). Możesz to zrobić, tworząc klasę z metodą rozszerzenia w MongoDatabase.

public static class MyDatabase
{
    public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
    {
        var name = typeof(T).Name;
        return db.GetCollection<T>(name);
    }
}

Następnie możesz po prostu wywołać GetCollection ze swoim typem, a nazwa zostanie ukryta przed ogólnym kodem. Możesz także stworzyć coś takiego, aby nieco bardziej abstrahować rzeczy:

public class MyDatabase
{
    private MongoDatabase _db;

    public MyDatabase(MongoDatabase db)
    {
        _db = db;
    }

    public MongoCollection<object> Objects
    {
        get
        {
            return _db.GetCollection<object>();
        }
    }
}

Dzięki temu możesz po prostu zrobić

var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();

To Find będzie mapować do wykonania na Objects kolekcji, po prostu zastąp <object> z Twoim typem i nadaj kolekcji nazwę.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb aktualizuje głęboko zagnieżdżony subdokument

  2. MongoDb SafeMode w porównaniu do WriteConcern

  3. MongoDB zlicza liczbę nowych dokumentów na minutę na podstawie _id

  4. Jaki jest prawidłowy sposób uruchomienia usługi mongod w systemie Linux / OS X?

  5. Jak przejść przez obiekt w kolekcji Meteor Mongo