TinyDB es una base de datos liviana orientada a documentos optimizada para tu felicidad :) Está escrita en Python puro y no tiene dependencias externas. El objetivo son aplicaciones pequeñas que quedarían impresionadas por un SQL-DB o un servidor de base de datos externo.
TinyDB es:
dict
) en TinyDB.Para profundizar directamente en todos los detalles, diríjase a los documentos de TinyDB. También puede discutir todo lo relacionado con TinyDB, como desarrollo general, extensiones o mostrar sus proyectos basados en TinyDB en el foro de discusión.
TinyDB ha sido probado con Python 3.8 - 3.13 y PyPy3.
Este proyecto está en modo de mantenimiento. Ha alcanzado un estado maduro y estable donde no se planean nuevas características significativas o cambios arquitectónicos. Dicho esto, todavía habrá lanzamientos para correcciones de errores o funciones aportadas por la comunidad. Lea más sobre lo que esto significa en particular aquí.
> >> 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 ))
Ya sea reportando errores, discutiendo mejoras y nuevas ideas o escribiendo extensiones: ¡Las contribuciones a TinyDB son bienvenidas! A continuación le indicamos cómo empezar: