TinyDB adalah database berorientasi dokumen ringan yang dioptimalkan untuk kebahagiaan Anda :) Ini ditulis dengan Python murni dan tidak memiliki ketergantungan eksternal. Targetnya adalah aplikasi kecil yang akan dihancurkan oleh SQL-DB atau server database eksternal.
TinyDB adalah:
dict
) di TinyDB.Untuk mendalami semua detailnya, buka dokumen TinyDB. Anda juga dapat mendiskusikan segala sesuatu yang berhubungan dengan TinyDB seperti pengembangan umum, ekstensi atau memamerkan proyek berbasis TinyDB Anda di forum diskusi.
TinyDB telah diuji dengan Python 3.8 - 3.13 dan PyPy3.
Proyek ini sedang dalam mode pemeliharaan. Ini telah mencapai keadaan matang dan stabil di mana fitur-fitur baru atau perubahan arsitektur yang signifikan tidak direncanakan. Meskipun demikian, masih akan ada rilis untuk perbaikan bug atau fitur yang disumbangkan oleh komunitas. Baca selengkapnya tentang arti hal ini secara khusus di sini.
> >> 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 ))
Baik melaporkan bug, mendiskusikan perbaikan dan ide-ide baru, atau menulis ekstensi: Kontribusi ke TinyDB dipersilakan! Berikut cara memulainya: