І якщо ми вже згадали embeded бази даних для пайтону, то щоб два рази не вставати давайте я залишу перелік тих про котрі знаю і котрими користувався (інколи із них дуже зручно почати MVP а потім перемкнути імплементацію на щось "доросле", якщо у цьому буде потреба)
1. montydb
Embeded база даних "яка виглядає і працює як MongoDB". Із документації - лише рідмі у проєкті 😄
>>> from montydb import MontyClient
>>> col = MontyClient(":memory:").db.test
>>> col.insert_many( [{"stock": "A", "qty": 6}, {"stock": "A", "qty": 2}] )
>>> cur = col.find( {"stock": "A", "qty": {"$gt": 4}} )
>>> next(cur)
{'_id': ObjectId('5ad34e537e8dd45d9c61a456'), 'stock': 'A', 'qty': 6}
2. tinydb
Проєкт яким надихався montydb - теж embeded, теж документоорієнтовна, вміє бути drop-in заміною монги через екстеншен tinymongo. Навідміну від montydb має документацію та більшу кількість підтримки на гітхабі (зірочки, коміти, котрибутори)
>>> from tinydb import TinyDB, Query
>>> db = TinyDB('/path/to/db.json')
>>> db.insert({'int': 1, 'char': 'a'})
>>> db.insert({'int': 1, 'char': 'b'})
3. mongita
Mongita is to MongoDB as SQLite is to SQL. Ще одна ліба котра намагається бути заміною монги, але останній коміт у репі був аж 2 роки тому.
>>> from mongita import MongitaClientDisk
>>> client = MongitaClientDisk()
>>> hello_world_db = client.hello_world_db
>>> mongoose_collection = hello_world_db.mongoose_collection
>>> mongoose_collection.insert_many([{'name': 'Meercat', 'does_not_eat': 'Snakes'},
{'name': 'Yellow mongoose', 'eats': 'Termites'}])
Лінки:
- https://github.com/patx/kenobi
- https://www.reddit.com/r/Python/comments/1hqvrd6/kenobidb_30_made_public_pickledb_replacement/
- https://github.com/davidlatwe/montydb
- https://github.com/msiemens/tinydb
- https://github.com/scottrogowski/mongita