Python TinyDB Получить последнюю запись в дБ

Я пытаюсь получить последнюю запись из моего tinyDB, поэтому я хочу сделать запрос, который выглядит так:"SELECT * FROM table ORDER BY id DESC LIMIT 1"который должен дать мне последний ряд. хотя я не могу понять, как это сделать с TinyDB.

4 ответа

Если вы хотите заказать дб по времени по убыванию, например:

od = sorted(db.all(), key=lambda k: k['time'])
print(od[-1])

Согласно документации, следующее вернет идентификатор документа последнего элемента в БД в TinyDB 4.7.0:

      el = db.all()[-1]
record = db.get(doc_id=el.doc_id)

Использование идентификаторов документов

Используя Query и делаем обновление:

with TinyDB('db.json') as db:
    my_table = db.table('a_table_name')
    my_query= Query()
    first_of_table_for_this_query = my_table.search(my_query.some_field == some_value)[1]
    last_of_table_for_this_query = my_table.search(my_query.some_field == some_value)[-1]
    # exemple of use for updating first inserted and last inserted only
    my_table.update({'some_field': some_value+42}, doc_ids=[
        first_of_table_for_this_query,
        last_of_table_for_this_query
    ])

Как насчет:

table = db.table('table_name')
table.get(doc_id=len(table))

Смотрите путь doc_id Вот

Другие вопросы по тегам