Наибольшее значение (макс.) Из-за ошибки сбора mongodb - Flask Python - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь получить наибольшее значение для nr из коллекции базы данных mongo с именем prob, которая сейчас выглядит следующим образом:

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

1 Ответ

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

Синтаксис для сортировки с использованием pymongo отличается от языка запросов mongo. В приведенном выше коде используется выражение

sort({"nr":-1})

Однако это синтаксис запроса оболочки Монго. При использовании пимонго это должно быть

sort("nr", pymongo.DESCENDING)

Вы также можете использовать find_one вместо предложения limit после сортировки данных.

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