我在mongo db中有以下条目:
{ "_id" : { "t" : 1491329960, "id" : 2 } }
{ "_id" : { "t" : 1491329961, "id" : 2 } }
{ "_id" : { "t" : 1491329961, "id" : 3 } }
{ "_id" : { "t" : 1491329961, "id" : 3 } }
我需要找到特定t
id
(假设test
是集合和数据库名称以及特定的id = 2
)
在mongo客户端我需要运行:
db.test.find( { '_id.id' : 2 } ).sort( { '_id.t' : -1} ).limit( 1 )
但是,在pymongo
中,以下不起作用
from pymongo import MongoClient as mc
mc()['test']['test'].find( { '_id.id' : 2 } ).sort( { '_id.t' }, -1 )[0]
并加注:
TypeError: first item in each key pair must be a string
我应该怎样做才能使用pymongo
获得我想要的内容?显然,我可以在以后获取所有内容并在python中进行排序,但这在性能方面是错误的
答案 0 :(得分:0)
Python语法与Javascript略有不同:
find( { '_id.id' : 2 } ).sort([('_id.t', -1)])[0]
“sort”采用(fieldname,direction)对的列表。