如何在flask pymongo中为变量赋值光标对象的第一个值

时间:2018-05-03 18:37:41

标签: python mongodb flask pymongo flask-pymongo

我正在尝试从代码中名为nr的Cursor对象的第一个值(items的最大值)中为nr赋值{}},但是我我不知道怎么做。(我正在使用flask pymongo。我看到了一个类似于我的问题,但由于我使用不同的数据库,它对我不起作用)。

这是我的代码:

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

我的数据库prob看起来像这样(我想从db集合中为变量分配最大nr的值):

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

1 个答案:

答案 0 :(得分:1)

您可以使用limit(),以便数据库仅返回第一个结果,并访问列表中的第一个元素。

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

编辑:您可以按如下方式获取nr属性。请注意,nr的类型取决于mongo中存储的类型。在您的评论中,您是对编码int的JSON,因此它将转换为字符串。

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)