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

używanie klucza jako wartości w Mongoengine

Czy rozważałeś bezpośrednie użycie PyMongo zamiast Mongoengine? Mongoengine został zaprojektowany do deklarowania i sprawdzania poprawności schematu dla twoich dokumentów i zapewnia wiele narzędzi i udogodnień wokół tego. Jeśli twoje dokumenty będą się różnić, nie jestem pewien, czy Mongoengine jest dla ciebie właściwym wyborem.

Jeśli jednak masz pewne pola wspólne we wszystkich dokumentach, a każdy dokument ma jakiś zestaw pól specyficznych dla siebie, możesz użyć DictField Mongoengine . Wadą tego jest to, że klucze nie będą „najwyższego poziomu”, na przykład:

class UserThings(Document):
    # you can look this document up by username
    username = StringField()

    # you can store whatever you want here
    things = DictField()

dcrosta_things = UserThings(username='dcrosta')
dcrosta_things.things['foo'] = 'bar'
dcrosta_things.things['bad'] = 'quack'
dcrosta_things.save()

Wyniki w dokumencie MongoDB, takim jak:

{ _id: ObjectId(...),
  _types: ["UserThings"],
  _cls: "UserThings",
  username: "dcrosta",
  things: {
    foo: "bar",
    baz: "quack"
  }
}

Edytuj: Powinienem również zauważyć, że trwają prace nad gałęzią rozwoju Mongoengine dla dokumentów „dynamicznych”, gdzie atrybuty instancji dokumentów Pythona zostaną zapisane podczas zapisywania modelu. Zobacz https://github.com/hmarr/mongoengine/pull/112 po szczegóły i historię.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Analizuj wydajność zapytania - mongoDB

  2. Tablica agregacji MongoDB z dwoma polami

  3. SyntaxError:nieprawidłowy identyfikator właściwości — MongoDB

  4. Spring-data mongodb repozytorium i dziedziczenie

  5. Dodawanie wartości do tablicy w MongoDB za pomocą Java