On this page, you can find information about supported and unsupported features in Django MongoDB Backend. You can also find features currently planned for the General Availability (GA) and post-GA releases. We will prioritize these upcoming features based on user demand, and you can request support for a feature by creating a JIRA issue.
This section indicates whether the Django MongoDB Backend supports various MongoDB features and which features we plan to support in the GA release.
ImportantUnsupported MongoDB features that have a checkmark (â
) symbol in the Planned GA Support column are planned for the General Availability release later in 2025. However, support is not guaranteed.
MongoDB Feature
Current Support
Planned GA Support
Atlas Search and Atlas Vector Search indexes
â
â
Compound indexes
â
â
Embedded document indexes
â
â
Geospatial indexes
Unsupported. You cannot use the Django Indexes API to create these indexes, but you can use the PyMongo Driver by exposing your MongoClient.
â
Multikey indexes
â
â
Partial indexes
â
â
Single field indexes
â
â
Unique indexes
â
â
Updating EmbeddedModelFields
indexes after model creation
Unsupported.
â
EmbeddedModelArrayField
indexes
Unsupported.
â
Django MongoDB Backend currently supports all MongoDB data types not included in the following table. To view a full list of supported types, see the MongoDB BSON Fields section of the Create Models guide.
BSON Data Type
Current Support
Planned GA Support
Array
Partially Supported. You can use the ArrayField
field type, but ArrayField
polymorphism is not supported.
â
Object
Partially Supported. You can use the EmbeddedModelField
field type with the following limitations:
EmbeddedModel
schema changes do not register after creation.
Embedded documents cannot take Django foreign keys.
Arbitrary or untyped embedded model fields are not supported. You must derive all fields from a EmbeddedModel
class.
Partial Support Planned. We plan to add support for registering EmbeddedModel
schema changes after creation.
Regular Expression
Unsupported.
Unsupported. However, we plan to support this type in a post-GA release.
MongoDB Feature
Current Support
Planned GA Support
Aggregation operations
Partially Supported. The Django MongoDB Backend does not include custom Django field lookups for the MongoDB aggregation framework, but you can use the raw_aggregate() method.
Full Support Not Planned. However, we plan to add support for MongoDB aggregation operators in a post-GA release.
Atlas Search queries
Partially Supported. You cannot use the Django QuerySet
API to run Atlas Search queries, but you can use the raw_aggregate() method.
â
Delete operations
â
â
Geospatial queries
Partially Supported. You cannot use the Django QuerySet
or GeoDjango
API to run geospatial queries, but you can use the raw_aggregate() method.
â
Insert operations
â
â
Read operations
â
â
Update operations
â
â
Vector Search queries
Partially Supported. You cannot use the Django QuerySet
API to run Vector Search queries, but you can use the raw_aggregate() method.
â
MongoDB Feature
Current Support
Planned GA Support
Asynchronous support
â
â
Authentication
â
â
Cached data storage
â Use the django_mongodb_backend.cache.MongoDBCache
backend rather than Django's built-in database cache backend, django.core.cache.backends.db.DatabaseCache
.
â
Change Streams
Unsupported.
Unsupported. However, we plan to add support for this feature in a post-GA release.
Client-side Field Level Encryption and Queryable Encryption
Unsupported.
â
Collection interaction
â
â
Database interaction
â
â
GridFS
Unsupported.
Unsupported. However, we plan to add support for this feature in a post-GA release.
Multiple models for one collection
Unsupported.
â
Representing documents
â Use models to represent MongoDB documents.
â
Schema validation
Unsupported.
Unsupported. However, we plan to add support for this feature in a post-GA release.
Timeseries data
â
â
Transactions
Unsupported.
â
This section indicates whether the Django MongoDB Backend supports various Django features and which features we plan to support in the GA release.
ImportantUnsupported Django features that have a checkmark (â
) symbol in the General Availability Support column are planned for the GA release later in 2025. However, support is not guaranteed.
Django MongoDB Backend currently supports all Django field types not included in the following table. To view a full list of supported fields, see the Django Fields section of the Create Models guide.
Django Field Type
Current Support
Planned GA Support
AutoField
Unsupported. The BigAutoField
and SmallAutoField
types are also not supported. Instead, use ObjectIdField
.
Unsupported.
CompositePrimaryKey
Unsupported.
Unsupported.
DateTimeField
Partially Supported. You can use this field type with the following limitations:
Microsecond granularity for DateTimeField
values is not supported.
Full Support Not Planned.
DurationField
Partially Supported. You can use this field type with the following limitations:
DurationField
stores milliseconds rather than microseconds
Full Support Not Planned.
ForeignKey
Partially Supported. You can use this field type with the following limitations:
When possible, you should use an EmbeddedModelField
instead of a ForeignKey
field to avoid using $lookup
operations. An EmbeddedModelField
emulates a MongoDB embedded document and performs better than a ForeignKey
field. To learn more about how to reduce $lookup
operations, see the Reduce $lookup Operations guide in the Atlas documentation.
Performance of CASCADE deletes on a ForeignKey
field is not as performant as using an EmbeddedModelField
.
Full Support Not Planned.
GeneratedField
Unsupported.
Unsupported.
JSONField
Partially Supported. You can use this field type with the following limitations:
Django MongoDB Backend cannot distinguish between a JSON and a SQL null
value. Queries that use Value(None, JSONField())
or the isnull
lookup return both JSON and SQL null
values.
Some queries with Q
objects, such as Q(value__foo="bar")
, might not work as expected.
Filtering for None
values incorrectly returns objects in which a field does not exist.
Full Support Not Planned. However, we plan to address the Q
object and None
key filtering limitations in a post-GA release.
Django MongoDB Backend currently supports all Django QuerySet
methods not included in the following table. To view the supported methods, see QuerySet API in the Django documentation.
Django QuerySet
Feature
Current Support
Planned GA Support
delete()
Partially Supported. You cannot use this method to perform queries that span multiple collections.
Full Support Not Planned.
extra()
Unsupported.
Unsupported.
prefetch_related()
Unsupported.
Unsupported.
raw()
Unsupported. However, you can use the raw_aggregate()
method to run queries that use MongoDB's aggregation pipeline syntax.
Full Support Not Planned.
update()
Partially Supported. You cannot use this method to perform queries that span multiple collections.
Full Support Not Planned.
Django MongoDB Backend currently supports all database functions not included in the following table. To view a full list of functions, see Database Functions in the Django documentation.
Django Function
Current Support
Planned GA Support
Chr
Unsupported.
Unsupported.
ExtractQuarter
Unsupported.
Unsupported.
MD5
Unsupported.
Unsupported.
Now
Unsupported.
Unsupported.
Ord
Unsupported.
Unsupported.
Pad
Unsupported.
Unsupported.
Repeat
Unsupported.
Unsupported.
Reverse
Unsupported.
Unsupported.
Right
Unsupported.
Unsupported.
SHA1
, SHA224
, SHA256
, SHA384
, SHA512
Unsupported.
Unsupported.
Sign
Unsupported.
Unsupported.
Trunc
Partially Supported. The tzinfo
parameter of the TruncDate
and TruncTime
database functions is not supported.
Full Support Not Planned.
Django Feature
Current Support
Planned GA Support
Django Admin
â
â
Django Forms
â
â
Django Authentication
â
â
Management commands
Partially Supported. To view the unsupported commands, see the following section.
Full Support Not Planned.
Django MongoDB Backend currently supports all management commands not included in the following table. To view a full list of commands, see Available commands in the Django documentation.
Django Command
Current Support
Planned GA Support
createcachetable
Unsupported. Instead, use Django MongoDB Backend's createcachecollection
command.
Unsupported.
dumpdata
Unsupported.
â
inspectdb
Unsupported.
Unsupported. However, we plan to support this command in a post-GA release.
loaddata
Unsupported.
â
sqlflush
Unsupported.
Unsupported.
sqlsequencereset
Unsupported.
Unsupported.
Django Feature
Current Support
Planned GA Support
Creating, deleting, and updating indexes through migration commands
Partially Supported. You cannot update indexes on embedded model or array fields.
Full Support Not Planned.
Unsupported.
Unsupported.
migrate --fake-initial
option
Unsupported.
Unsupported.
Library
Current Support
Planned GA Support
Partially Supported. Most use cases are supported.
Partially Supported. This release will outline use case limitations.
Partially Supported. Most use cases are supported.
Partially Supported. This release will outline use case limitations.
Partially Supported. Most use cases are supported.
Partially Supported. This release will outline use case limitations.
Unsupported.
Partially Supported. This release will outline use case limitations.
Partially Supported. Most use cases are supported.
Partially Supported. This release will outline use case limitations.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4