Kre*_*zer 1 python mongodb mongoengine
我在我的Flask应用程序(mongoengine)中使用mongoDB(mongoHQ).我有一个Document看起来像这样:
{items: [{id: 1}, {id: 2}, {id: 3}]}
Run Code Online (Sandbox Code Playgroud)
有没有达到的一种方式,例如,dict用id: 1在一个单一的查询?
目前我正在通过items一个next()声明循环列表,我希望有一个更明智的解决方案.谢谢
我不熟悉MongoEngine,但$ projection运算符可以过滤数组以仅显示匹配的元素.在Mongo shell中:
> db.foo.insert({"items": [{"id": 1}, {"id": 2}, {"id": 3}]})
> db.foo.find({'items.id': 1}, {'items.$': true})
{ "_id" : ObjectId("51ce29b68b178484ff2a01ed"), "items" : [ { "id" : 1 } ] }
Run Code Online (Sandbox Code Playgroud)
更多信息:http://docs.mongodb.org/manual/reference/projection/positional/
在MongoEngine中你似乎做到了:
Foo.objects(__raw__={'items.id': 1}).only('items.$')
Run Code Online (Sandbox Code Playgroud)
更多:http://mongoengine-odm.readthedocs.org/en/latest/guide/querying.html#raw-queries
| 归档时间: |
|
| 查看次数: |
5394 次 |
| 最近记录: |