如何将 flask pymongo 中游标对象的第一个值分配给变量

How to assign to a variable the first value of the cursor object in flask pymongo

我试图从我的代码中名为 items 的 Cursor 对象的第一个值(这是 nr 的最大值)分配给变量 nr 的值但我不知道该怎么做。(我正在使用 flask pymongo。我看到了一个类似于我的问题,但它对我不起作用,因为我使用的是不同的数据库)。

这是我的代码:

@app.route('/testaree')
def testaree():
    prob = mongo.db.prob
    items = prob.find().sort("nr", pymongo.DESCENDING)
    return flask.jsonify(items)

我的数据库 prob 看起来像这样(我试图将数据库集合中最大 nr 的值赋给一个变量):

{
    "_id": {
        "$oid": "5ae9d062f36d282906c59736"
    },
    "nr": 1,
    "nume": "numeunu",
    "enunt": "-",
    "datedeintrare": "-",
    "datedeiesire": "-"
}
{
    "_id": {
        "$oid": "5ae9f190f36d282906c5b461"
    },
    "nr": 2,
    "nume": "numedoi",
    "enunt": "-",
    "datedeintrare": "-",
    "datedeiesire": "-"
}

您可以使用limit()让数据库只returns第一个结果,并访问列表中的第一个元素。

items = prob.find().sort("nr", pymongo.DESCENDING).limit(1)
return flask.jsonify(items[0])

编辑:您可以获得 nr 属性 如下。请注意,nr 的类型将取决于存储在 mongo 中的类型。在您的评论中,您正在 JSON 对 int 进行编码,以便将其转换为字符串。

items = prob.find().sort("nr", pymongo.DESCENDING).limit(1)
nr_prop = items[0]["nr"]
print(nr_prop)
flask.jsonify(nr_prop)

或者如果 nr 不是数据库中的 int(它应该来自查看您问题中的数据):

nr_prop = int(items[0]["nr"])
print(nr_prop)
flask.jsonify(nr_prop)