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

Pobieranie słownika wewnątrz listy przez klucz w mongoDB (mongoengine)

Nie znam MongoEngine, ale operator projekcji $ może filtrować tablicę, aby pokazać tylko dopasowany element. W powłoce Mongo:

> db.foo.insert({"items": [{"id": 1}, {"id": 2}, {"id": 3}]})
> db.foo.find({'items.id': 1}, {'items.$': true})
{ "_id" : ObjectId("51ce29b68b178484ff2a01ed"), "items" : [  {  "id" : 1 } ] }

Więcej informacji:http://docs.mongodb.org/manual/reference/projection /pozycyjny/

Wygląda na to, że w MongoEngine robisz:

Foo.objects(__raw__={'items.id': 1}).only('items.$')

Więcej:http://mongoengine-odm.readthedocs .org/pl/latest/guide/querying.html#raw-queries



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo DB, PHP dodają lub aktualizują pole w dokumencie

  2. Tylko odpytywanie poddokumentu i zwracanie pasującego poddokumentu

  3. Jak uzyskać nazwy z identyfikatora w manguście?

  4. Aktualizacja tablicy Mongo lub push w jednym zapytaniu

  5. Schemat Mongoose z zagnieżdżonym opcjonalnym obiektem