【问题标题】:Highest value(max) from mongodb collection error - Flask Python来自mongodb收集错误的最大值(最大值) - Flask Python
【发布时间】:2018-10-14 01:34:12
【问题描述】:

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

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

【问题讨论】:

    标签: python mongodb flask pymongo flask-pymongo


    【解决方案1】:

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

    sort({"nr":-1})
    

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

    sort("nr", pymongo.DESCENDING)
    

    数据排序后,您也可以使用 find_one 代替 limit 子句。

    db.prob.find_one(sort=[("nr", pymongo.DESCENDING)])
    

    【讨论】:

    • 谢谢!但是现在我如何将它找到的第一个值实际分配给变量(因为它按降序排序)(对不起,如果我是菜鸟)
    • 您可以返回值而不分配给变量db.prob.find_one(sort=[("nr",pymongo.DESCENDING)])['nr']
    猜你喜欢
    • 2013-10-14
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多