Skip to main content

No project description provided

Project description

DocumentDB

codecov

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.

Features

  • 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.

Installation

To install DocumentDB, you can use pip:

pip install documentdb

Usage & Examples

Creating a Store

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")

Creating a Collection

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")

Inserting a Document

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)

Inserting Multiple Documents (Bulk Insert)

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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

documentdb-0.0.5.tar.gz (6.5 kB view hashes)

Uploaded Source

Built Distribution

documentdb-0.0.5-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page