Skip to main content

DocumentDB/MongoDB backend for Django

This project, django-documentdb, is a fork of the original django-mongodb repository, which was developed and maintained by the MongoDB Python Team. The primary purpose of this fork is to enhance compatibility with AWS DocumentDB, a MongoDB-compatible database service provided by Amazon Web Services. To accommodate the differences between DocumentDB and MongoDB’s API support, specific adjustments have been implemented to ensure seamless functionality within DocumentDB.

We encourage users to provide feedback and report any issues as we continue to improve the library. You can share your thoughts, suggestions, or report problems on our GitHub Issues page

Documentation

For full documentation, including installation, configuration, etc. Please see https://django-documentdb.readthedocs.io/

Installation

To install django_documentdb, use one of the following methods:

Using pip

You can install django_documentdb with:

pip install django_documentdb

Using Poetry

If you're using Poetry to manage your dependencies, you can add django_documentdb to your project with:

poetry add django_documentdb

Notes on Django QuerySets

django-documentdb uses own QuerySet implementation (DocumentQuerySet) if you inherit your models from DocumentModel class.

Example:

from django_documentdb.models import DocumentModel
from django_documentdb import fields
from django.db import models


class TestModel(DocumentModel):
    _id = fields.ObjectIdAutoField(primary_key=True)
    text_value = models.CharField(max_length=100, null=True)
    number_value = models.FloatField(null=True)

    class Meta:
        db_table = "test_db"

Available options with DocumentQuerySet:

  • QuerySet.explain() supports the comment and verbosity options.

    Example: QuerySet.explain(comment="...", verbosity="...")

    Valid values for verbosity are "queryPlanner" (default), "executionStats", and "allPlansExecution".

  • DocumentQuerySet.index_hint(index_name) - allows to specify index hint for query.

Known issues and limitations

  • The following QuerySet methods aren't supported:

    • bulk_update()
    • dates()
    • datetimes()
    • distinct()
    • extra()
    • prefetch_related()
  • QuerySet.delete() and update() do not support queries that span multiple collections.

  • DateTimeField doesn't support microsecond precision, and correspondingly, DurationField stores milliseconds rather than microseconds.

  • The following database functions aren't supported:

    • Chr
    • ExtractQuarter
    • MD5
    • Now
    • Ord
    • Pad
    • Repeat
    • Reverse
    • Right
    • SHA1, SHA224, SHA256, SHA384, SHA512
    • Sign
    • TruncDate
    • TruncTime
  • The tzinfo parameter of the Trunc database functions doesn't work properly because MongoDB converts the result back to UTC.

  • When querying JSONField:

    • There is no way to distinguish between a JSON "null" (represented by Value(None, JSONField())) and a SQL null (queried using the isnull lookup). Both of these queries return both of these nulls.
    • Some queries with Q objects, e.g. Q(value__foo="bar"), don't work properly, particularly with QuerySet.exclude().
    • Filtering for a None key, e.g. QuerySet.filter(value__j=None) incorrectly returns objects where the key doesn't exist.
    • You can study the skipped tests in DatabaseFeatures.django_test_skips for more details on known issues.
  • Due to the lack of ability to introspect MongoDB collection schema, migrate --fake-initial isn't supported.

Forked Project

This project, django-documentdb, is a fork of the original django-mongodb library, which aimed to integrate MongoDB with Django. The fork was created to enhance compatibility with AWS DocumentDB, addressing the limitations of its API support while maintaining the core functionalities of the original library. We appreciate the work of the MongoDB Python Team and aim to build upon their foundation to better serve users needing DocumentDB integration.

Metadata

Release files for django-documentdb 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-documentdb 0.0.13
File Size Uploaded
django_documentdb-0.0.13.tar.gz 51.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-documentdb 0.0.13
File Interpreter ABI Platform
django_documentdb-0.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 106.0 kB

Release files / django_documentdb-0.0.13.tar.gz

Download URL django_documentdb-0.0.13.tar.gz
Size 51.3 kB
Tags Source
SHA-256 checksum
How to use checksums
cb71934ffcb165501ef1a9aeadb9c08ebbec47f9f7d298fc4a4a95c762293042
BLAKE2b-256 checksum
How to use checksums
a19aaceea63e4cf4eaacdca20a6dd59be1c85834de7c388cd7d1de6eff697526
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2025.

Transparency log

Release files / django_documentdb-0.0.13-py3-none-any.whl

Download URL django_documentdb-0.0.13-py3-none-any.whl
Size 54.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b34b57d4c0be8d1047437860437413419cd908596573b4021c1bd8398dd646a1
BLAKE2b-256 checksum
How to use checksums
31a34c5f4684255e6bb4166f29924bf39d44a80d55feaf627b79b14b298ddf99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.13 This release

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page