Skip to main content
 首页 » 编程设计

python之在mongoDB(mongoengine)中按键获取列表中的字典

2025年05月04日19Renyi-Fan

我在我的 Flask 应用程序 (mongoengine) 中使用 mongoDB (mongoHQ)。 我有一个看起来像这样的 Document:

{items: [{id: 1}, {id: 2}, {id: 3}]} 

有没有办法在单个查询中访问 dict with id: 1?

目前我正在使用 next() 语句遍历 items 列表,我希望有一个更明智的解决方案。谢谢

请您参考如下方法:

我不熟悉 MongoEngine,但是 $ 投影运算符可以过滤数组以仅显示匹配的元素。在 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 } ] } 

更多信息:http://docs.mongodb.org/manual/reference/projection/positional/

在 MongoEngine 中你似乎这样做了:

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

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