我正试图从名为nr
的mongo数据库集合中获取prob
的最高值,该集合现在看起来像这样:
{
"_id": {
"$oid": "5ae9d062f36d282906c59736"
},
"nr": 1,
"nume": "numeunu",
"enunt": "-",
"datedeintrare": "-",
"datedeiesire": "-"
}
{
"_id": {
"$oid": "5ae9f190f36d282906c5b461"
},
"nr": 2,
"nume": "numedoi",
"enunt": "-",
"datedeintrare": "-",
"datedeiesire": "-"
}
我的测试瓶代码是:
@app.route('/test')
def testaree():
prob = mongo.db.prob
return prob.find().sort({"nr":-1}).limit(1)
但它给我一个错误TypeError: if no direction is specified, key_or_list must be an instance of list
答案 0 :(得分:2)
使用pymongo进行排序的语法与mongo查询语言不同。 在上面的代码中,使用的表达式是
sort({"nr":-1})
但是,这是一个mongo shell查询语法。当使用pymongo它应该是
sort("nr", pymongo.DESCENDING)
一旦数据被排序,您也可以使用find_one而不是limit子句。
db.prob.find_one(sort=[("nr", pymongo.DESCENDING)])