Как присвоить переменной первое значение объекта курсора в фляге pymongo - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь присвоить переменной значение nr из первого значения объекта Cursor с именем items в моем коде (что составляет максимум nr), но я не знаю, как сделать это. (Я использую флягу 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": "-"
}

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете использовать limit(), чтобы база данных возвращала только первый результат и имела доступ к первому элементу в списке.

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

РЕДАКТИРОВАТЬ: Вы можете получить свойство nr следующим образом. Обратите внимание, что тип nr будет зависеть от типа, который хранится в монго. В своем комментарии вы 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)
...