sql >> Database teknologi >  >> NoSQL >> MongoDB

Få en ordbog i en liste med nøgle i mongoDB (mongoengine)

Jeg er ikke bekendt med MongoEngine, men $-projektionsoperatøren kan filtrere et array for kun at vise det matchede element. I Mongo-skallen:

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

Mere info:http://docs.mongodb.org/manual/reference/projection /positionel/

Det ser ud til, at du i MongoEngine gør:

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

Mere:http://mongoengine-odm.readthedocs .org/da/latest/guide/querying.html#raw-queries



  1. Mongoengine deferencing sker efter brug af select_related()

  2. Til hvilket niveau låser MongoDB skrivning? (eller:hvad betyder det med per forbindelse

  3. Redis datastruktur pladskrav

  4. Hvordan installeres php-mongo på CentOS 5.3?