sql >> Database >  >> NoSQL >> MongoDB

Een woordenboek in een lijst krijgen op sleutel in mongoDB (mongoengine)

Ik ben niet bekend met MongoEngine, maar de $ projectie-operator kan een array filteren om alleen het overeenkomende element weer te geven. In de Mongo-schaal:

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

Meer info:http://docs.mongodb.org/manual/reference/projection /positioneel/

Het lijkt erop dat je in MongoEngine doet:

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

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



  1. $elemMatch-projectie in node.js

  2. MongoDB - indexeer een interne lijst met objecten

  3. MongoDB-instanties bewaken met behulp van MongoDB Monitoring Service (MMS)

  4. Getypte transacties opnieuw weergeven