DocumentDB is a JSON document-oriented database built on top of SQLite. It offers a simple and efficient way to store, retrieve, and manage JSON documents using the robust and widely-used SQLite as its storage backend. DocumentDB provides a flexible and schema-less data model, allowing for easy integration and usage in various applications.
- JSON Document Storage: Store JSON documents in a schema-less database.
- SQLite Backend: Leverage the reliability and performance of SQLite.
- Simple API: Intuitive and easy-to-use API for managing documents.
- Flexible Querying: Support for complex queries on JSON data.
- Lightweight: Minimal dependencies and lightweight installation.
- Transactional: Support for ACID transactions through SQLite.
To install DocumentDB, you can use pip:
pip install documentdb
A Store is a container for Collections.
To create a Store, you can simply instantiate it with a path to where the store should be written on disk (this path is the underlying SQLite path)
from documentdb import Store
store = Store("path/to/store.db")
A Collection is a group of Documents. To create a Collection, you can use the create_collection
method on the Store instance.
collection = await store.create_collection("animals")
A Document is any JSON serializable object. That can be a dictionary, list, string, number, etc, it just must be JSON serializable.
Example:
document = {
"name": "Blueberry",
"type": "dog",
"breed": "Maltese",
"age": 4
}
await collection.insert(document)
You can insert multiple documents at once using the insert_many
method.
Example:
This is a small list for brevity when in reality you would likely have a much larger list of documents to insert.
documents = [
{
"name": "Blueberry",
"type": "dog",
"breed": "Maltese",
"age": 4
},
{
"name": "Luna",
"type": "dog",
"breed": "Corgi",
"age": 2
}
]
await collection.insert_many(documents)