TinyDB é um banco de dados leve orientado a documentos otimizado para sua felicidade :) Ele é escrito em Python puro e não possui dependências externas. O alvo são pequenos aplicativos que seriam destruídos por um banco de dados SQL ou um servidor de banco de dados externo.
TinyDB é:
dict
) no TinyDB.Para mergulhar direto em todos os detalhes, acesse a documentação do TinyDB. Você também pode discutir tudo relacionado ao TinyDB, como desenvolvimento geral, extensões ou mostrar seus projetos baseados em TinyDB no fórum de discussão.
TinyDB foi testado com Python 3.8 - 3.13 e PyPy3.
Este projeto está em modo de manutenção. Atingiu um estado maduro e estável onde não são planeados novos recursos significativos ou alterações arquitetónicas. Dito isto, ainda haverá lançamentos para correções de bugs ou recursos contribuídos pela comunidade. Leia mais sobre o que isso significa em particular aqui.
> >> from tinydb import TinyDB , Query
> >> db = TinyDB ( '/path/to/db.json' )
> >> db . insert ({ 'int' : 1 , 'char' : 'a' })
> >> db . insert ({ 'int' : 1 , 'char' : 'b' })
> >> User = Query ()
> >> # Search for a field value
>> > db . search ( User . name == 'John' )
[{ 'name' : 'John' , 'age' : 22 }, { 'name' : 'John' , 'age' : 37 }]
> >> # Combine two queries with logical and
>> > db . search (( User . name == 'John' ) & ( User . age <= 30 ))
[{ 'name' : 'John' , 'age' : 22 }]
> >> # Combine two queries with logical or
>> > db . search (( User . name == 'John' ) | ( User . name == 'Bob' ))
[{ 'name' : 'John' , 'age' : 22 }, { 'name' : 'John' , 'age' : 37 }, { 'name' : 'Bob' , 'age' : 42 }]
> >> # Negate a query with logical not
>> > db . search ( ~ ( User . name == 'John' ))
[{ 'name' : 'Megan' , 'age' : 27 }, { 'name' : 'Bob' , 'age' : 42 }]
> >> # Apply transformation to field with `map`
>> > db . search (( User . age . map ( lambda x : x + x ) == 44 ))
> >> [{ 'name' : 'John' , 'age' : 22 }]
> >> # More possible comparisons: != < > <= >=
>> > # More possible checks: where(...).matches(regex), where(...).test(your_test_func)
> >> table = db . table ( 'name' )
> >> table . insert ({ 'value' : True })
> >> table . all ()
[{ 'value' : True }]
> >> from tinydb . storages import JSONStorage
> >> from tinydb . middlewares import CachingMiddleware
> >> db = TinyDB ( '/path/to/db.json' , storage = CachingMiddleware ( JSONStorage ))
Seja relatando bugs, discutindo melhorias e novas ideias ou escrevendo extensões: Contribuições para o TinyDB são bem-vindas! Veja como começar: