Можно ли ввести идентификатор документа на tinydb? возможен ли упадок сил?

Можно определить идентификатор документа при вставке документа в базу данных TinyDB? например (из учебника) https://pypi.python.org/pypi/tinydb

from tinydb import TinyDB, where

from tinydb import TinyDB, where
db = TinyDB('./db.json')
db.insert({'int': 1, 'char': 'a'})
db.insert({'int': 1, 'char': 'b'}

но если мы увидим сгенерированный документ:

{"_default": {"1": {"int": 1, "char": "a"}, "2": {"int": 1, "char": "b"}}}

идентификаторы, такие как "1" и "2", где автоматически определяется TinyDB. есть ли способ выбрать этот идентификатор при вставке документа? Кроме того, можно сделать upsert?

Спасибо!:)

0 ответов

Да, вы можете выбрать внутренний идентификатор doc_id.

 from tinydb import table, TinyDB, Query
 
 db = TinyDB('db.json')
 db.insert(table.Document({'name': 'John', 'age': 22}, doc_id=12))

Это результат:

 {"_default": {"12": {"name": "John", "age": 22}}}

И да, это также работает с upsert.

User = Query()
db.upsert(table.Document({'name': 'John', 'age': 50}, doc_id=12), User.name == 'John')
Другие вопросы по тегам