0

我正在尝试nr从名为prob现在看起来像这样的 mongo 数据库集合中获取最高值:

{
    "_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

4

1 回答 1

2

使用 pymongo 进行排序的语法与 mongo 查询语言不同。在上面的代码中,使用的表达式是

sort({"nr":-1})

但是,这是一种 mongo shell 查询语法。使用 pymongo 时应该是

sort("nr", pymongo.DESCENDING)

对数据进行排序后,您还可以使用 find_one 而不是 limit 子句。

db.prob.find_one(sort=[("nr", pymongo.DESCENDING)])
于 2018-05-03T17:58:55.277 回答