11.. _django-limitations:
22
3- ============
4- Limitations
5- ============
3+ =================================
4+ Limitations and Upcoming Features
5+ =================================
66
77.. contents:: On this page
88 :local:
99 :backlinks: none
10- :depth: 1
10+ :depth: 2
1111 :class: singlecol
1212
1313.. facet::
@@ -21,14 +21,32 @@ Overview
2121--------
2222
2323On this page, you can find a list of features that
24- {+django-odm+} does not support. Because {+django-odm+} is in active
25- development, some features listed on this page might be considered for future
26- releases based on user demand. You can request support for a feature by leaving
27- a suggestion on the `Drivers Feedback Forum
24+ {+django-odm+} does not support. You can also find features
25+ currently planned for the General Availability (GA) and post-GA
26+ releases. We will prioritize these upcoming features
27+ based on user demand, and you can request support
28+ for a feature by leaving a suggestion on the `Drivers Feedback Forum
2829<https://feedback.mongodb.com/forums/924286-drivers?category_id=370732>`__.
2930
31+ Feature Limitations
32+ -------------------
33+
34+ In this section, you can learn about the following
35+ types of unsupported {+framework+} and MongoDB features:
36+
37+ - :ref:`django-limitations-database`
38+ - :ref:`django-limitations-models`
39+ - :ref:`django-limitations-query`
40+ - :ref:`django-limitations-management`
41+ - :ref:`django-limitations-migration`
42+ - :ref:`django-limitations-async`
43+ - :ref:`django-limitations-data`
44+ - :ref:`django-limitations-performance`
45+
46+ .. _django-limitations-database:
47+
3048Unsupported Database Variables
31- ------------------------------
49+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3250
3351The following database variables are not supported by {+django-odm+}:
3452
@@ -37,16 +55,18 @@ The following database variables are not supported by {+django-odm+}:
3755- ``CONN_HEALTH_CHECKS``
3856- ``TIME_ZONE``
3957
58+ .. _django-limitations-models:
59+
4060Model Limitations
41- -----------------
61+ ~~~~~~~~~~~~~~~~~
4262
4363The following limitations apply to models in {+django-odm+}:
4464
4565- {+django-odm+} enforces a one-to-one mapping between a Django model and a
4666 MongoDB collection. Because of this, multiple models cannot share the same collection.
4767
4868Indexes
49- ~~~~~~~
69+ ```````
5070
5171{+django-odm+} does not support the following index functionalities:
5272
@@ -59,8 +79,10 @@ To learn how to run unsupported database operations by operating directly on
5979your ``MongoClient`` instance, see :ref:`django-client-operations` in the
6080Perform Raw Database Queries guide.
6181
82+ .. _django-limitations-models-fields:
83+
6284Fields
63- ~~~~~~
85+ ``````
6486
6587{+django-odm+} has the following limitations on the specified field types:
6688
@@ -115,8 +137,10 @@ The following field types are unavailable in {+django-odm+}:
115137- ``BigAutoField``
116138- ``SmallAutoField``
117139
140+ .. _django-limitations-query:
141+
118142Querying Limitations
119- --------------------
143+ ~~~~~~~~~~~~~~~~~~~~
120144
121145{+django-odm+} does not support the following ``QuerySet`` API methods:
122146
@@ -130,14 +154,14 @@ Querying Limitations
130154that span multiple collections.
131155
132156Geospatial Queries
133- ~~~~~~~~~~~~~~~~~~
157+ ``````````````````
134158
135159- {+django-odm+} does not support ``GeoDjango``.
136160- {+django-odm+} does not have any Django lookup operators for MongoDB-specific
137161 geospatial queries.
138162
139163Aggregation Operators
140- ~~~~~~~~~~~~~~~~~~~~~
164+ `````````````````````
141165
142166{+django-odm+} does not contain any custom Django field lookups for the MongoDB
143167aggregation framework. Instead, use the ``raw_aggregate()`` method. For more
@@ -147,7 +171,7 @@ the :ref:`django-raw-queries` guide.
147171.. TODO: Link to aggregation
148172
149173Database Functions
150- ~~~~~~~~~~~~~~~~~~
174+ ``````````````````
151175
152176{+django-odm+} does not support the following database functions:
153177
@@ -166,8 +190,10 @@ Database Functions
166190The ``tzinfo`` parameter of the ``Trunc`` database functions doesn't work
167191properly because MongoDB converts the result back to UTC.
168192
193+ .. _django-limitations-management:
194+
169195Django Management Command Limitations
170- -------------------------------------
196+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171197
172198{+django-odm+} does not support the following Django management commands:
173199
@@ -177,8 +203,10 @@ Django Management Command Limitations
177203- ``sqlflush``
178204- ``sqlsequencereset``
179205
206+ .. _django-limitations-migration:
207+
180208Migration Limitations
181- ---------------------
209+ ~~~~~~~~~~~~~~~~~~~~~
182210
183211- {+django-odm+} does not support enforced schema validation. To learn how to
184212 enforce schema validation in your application, see the :manual:`Specify JSON
@@ -188,24 +216,147 @@ Migration Limitations
188216 <{+django-docs+}/topics/migrations/#transactions>`__.
189217- {+django-odm+} does not support the ``migrate --fake-initial`` command.
190218
191- Asynchronous Support
192- --------------------
219+ .. _django-limitations-async:
220+
221+ Asynchronous Limitations
222+ ~~~~~~~~~~~~~~~~~~~~~~~~
193223
194224{+django-odm+} has not been tested for support of the asynchronous functionality of
195225the Django API.
196226
227+ .. _django-limitations-data:
228+
197229Data Types
198- ----------
230+ ~~~~~~~~~~
199231
200232{+django-odm+} does not have a custom ``Field`` class for the ``BSONRegExp``
201233data type. Instead, use the ``CharField`` class.
202234
235+ .. _django-limitations-performance:
236+
203237Performance
204- -----------
238+ ~~~~~~~~~~~
205239
206240The engineering team is prioritizing feature development for the Public Preview
207241release of {+django-odm+}. Because of this, you might notice performance
208242limitations with certain workloads. If you encounter any performance issues,
209243please report them as shown in the :ref:`Issues & Help <django-issues-and-help>`
210244guide. You can also share your feedback on the `Drivers Feedback Forum
211245<https://feedback.mongodb.com/forums/924286-drivers?category_id=370732>`__.
246+
247+ General Availability Release Features
248+ -------------------------------------
249+
250+ In this section, you can learn about the following
251+ types of {+framework+} and MongoDB features that
252+ GA and post-GA {+django-odm+} releases will likely introduce:
253+
254+ - :ref:`django-upcoming-mongodb`
255+ - :ref:`django-upcoming-models`
256+ - :ref:`django-upcoming-management`
257+ - :ref:`django-upcoming-third-party`
258+ - :ref:`django-upcoming-variables`
259+ - :ref:`django-upcoming-async`
260+
261+ .. _django-upcoming-mongodb:
262+
263+ MongoDB Features
264+ ~~~~~~~~~~~~~~~~
265+
266+ We plan to support the following MongoDB features in
267+ the GA release:
268+
269+ - Programmatic management of Vector Search, Atlas Search,
270+ and geospatial indexes by using the Django API
271+ - Vector Search, Atlas Search, and geospatial queries
272+ by using the Django API
273+ - Queryable Encryption and Client-side Field Level Encryption
274+ - Database transactions
275+ - Storage of cached data in the database
276+
277+ We plan to support the following MongoDB features in
278+ future post-GA releases:
279+
280+ - GridFS for large file storage
281+ - Change streams for data monitoring
282+ - Schema validation
283+
284+ .. tip::
285+
286+ To learn more about the MongoDB features mentioned in this section, see
287+ the following resources:
288+
289+ - :atlas:`Atlas Vector Search </atlas-vector-search/vector-search-overview/>` in the Atlas documentation
290+ - :atlas:`Atlas Search </atlas-search>` in the Atlas documentation
291+ - :manual:`Geospatial Queries </geospatial-queries/>` in the {+mdb-server+}
292+ manual
293+ - :manual:`In-Use Encryption </core/security-in-use-encryption/>` in the {+mdb-server+}
294+ manual
295+ - :manual:`Transactions </core/transactions/>` in the {+mdb-server+}
296+ manual
297+ - :manual:`GridFS </core/gridfs/>` in the {+mdb-server+}
298+ manual
299+ - :manual:`Change Streams </changeStreams/>` in the {+mdb-server+}
300+ manual
301+
302+ .. _django-upcoming-models:
303+
304+ Model Features
305+ ~~~~~~~~~~~~~~
306+
307+ We plan to support the following model features in
308+ the GA release:
309+
310+ - Arrays of embedded documents
311+ - Polymorphic embedded documents and arrays
312+ - Application of changes to the embedded model schema to
313+ ``EmbeddedModelField`` values
314+ - Multiple models within a collection
315+ - Improved form representation in embedded models
316+
317+ In future post-GA releases, we plan to support a custom ``Field``
318+ class for the ``BSONRegExp`` data type.
319+
320+ .. _django-upcoming-management:
321+
322+ Django Management Command Features
323+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324+
325+ We plan to support the following Django commands in
326+ the GA release:
327+
328+ - ``dumpdata``
329+ - ``loaddata``
330+
331+ .. _django-upcoming-third-party:
332+
333+ Third Party Features
334+ ~~~~~~~~~~~~~~~~~~~~
335+
336+ We plan to support the following third-party features in
337+ the GA release:
338+
339+ - `Django-filter <https://django-filter.readthedocs.io/en/stable/>`__
340+ - `Django Rest Framework <https://www.django-rest-framework.org/>`__
341+ - `Django-allauth <https://docs.allauth.org/en/latest/>`__
342+ - `Wagtail <https://wagtail.org/>`__
343+ - `Django Debug Toolbar <https://django-debug-toolbar.readthedocs.io/en/latest/>`__
344+
345+ .. _django-upcoming-variables:
346+
347+ Database Variable Support
348+ ~~~~~~~~~~~~~~~~~~~~~~~~~
349+
350+ We plan to support the following Django variables for configuring
351+ your database connection in future post-GA releases:
352+
353+ - ``CONN_HEALTH_CHECKS``
354+ - ``TIME_ZONE``
355+
356+ .. _django-upcoming-async:
357+
358+ Asynchronous Support
359+ ~~~~~~~~~~~~~~~~~~~~
360+
361+ We plan to offer asynchronous support for {+django-odm+} in
362+ future post-GA releases.
0 commit comments