Skip to content

Commit bbe4b91

Browse files
committed
DOCSP-46984: Upcoming features
1 parent 66ba303 commit bbe4b91

File tree

1 file changed

+168
-17
lines changed

1 file changed

+168
-17
lines changed

source/limitations.txt

Lines changed: 168 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
.. _django-limitations:
22

3-
============
4-
Limitations
5-
============
3+
=================================
4+
Limitations and Upcoming Features
5+
=================================
66

77
.. contents:: On this page
88
:local:
@@ -27,8 +27,28 @@ releases based on user demand. You can request support for a feature by leaving
2727
a suggestion on the `Drivers Feedback Forum
2828
<https://feedback.mongodb.com/forums/924286-drivers?category_id=370732>`__.
2929

30+
You can also find a list of features that {+django-odm+}
31+
will likely support in upcoming releases.
32+
33+
Feature Limitations
34+
-------------------
35+
36+
In this section, you can learn about the following
37+
types of unsupported {+framework+} and MongoDB features:
38+
39+
- :ref:`django-limitations-database`
40+
- :ref:`django-limitations-models`
41+
- :ref:`django-limitations-query`
42+
- :ref:`django-limitations-management`
43+
- :ref:`django-limitations-migration`
44+
- :ref:`django-limitations-async`
45+
- :ref:`django-limitations-data`
46+
- :ref:`django-limitations-performance`
47+
48+
.. _django-limitations-database:
49+
3050
Unsupported Database Variables
31-
------------------------------
51+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3252

3353
The following database variables are not supported by {+django-odm+}:
3454

@@ -37,16 +57,18 @@ The following database variables are not supported by {+django-odm+}:
3757
- ``CONN_HEALTH_CHECKS``
3858
- ``TIME_ZONE``
3959

60+
.. _django-limitations-models:
61+
4062
Model Limitations
41-
-----------------
63+
~~~~~~~~~~~~~~~~~
4264

4365
The following limitations apply to models in {+django-odm+}:
4466

4567
- {+django-odm+} enforces a one-to-one mapping between a Django model and a
4668
MongoDB collection. Because of this, multiple models cannot share the same collection.
4769

4870
Indexes
49-
~~~~~~~
71+
```````
5072

5173
{+django-odm+} does not support the following index functionalities:
5274

@@ -59,8 +81,10 @@ To learn how to run unsupported database operations by operating directly on
5981
your ``MongoClient`` instance, see :ref:`django-client-operations` in the
6082
Perform Raw Database Queries guide.
6183

84+
.. _django-limitations-models-fields:
85+
6286
Fields
63-
~~~~~~
87+
``````
6488

6589
{+django-odm+} has the following limitations on the specified field types:
6690

@@ -115,8 +139,10 @@ The following field types are unavailable in {+django-odm+}:
115139
- ``BigAutoField``
116140
- ``SmallAutoField``
117141

142+
.. _django-limitations-query:
143+
118144
Querying Limitations
119-
--------------------
145+
~~~~~~~~~~~~~~~~~~~~
120146

121147
{+django-odm+} does not support the following ``QuerySet`` API methods:
122148

@@ -130,14 +156,14 @@ Querying Limitations
130156
that span multiple collections.
131157

132158
Geospatial Queries
133-
~~~~~~~~~~~~~~~~~~
159+
``````````````````
134160

135161
- {+django-odm+} does not support ``GeoDjango``.
136162
- {+django-odm+} does not have any Django lookup operators for MongoDB-specific
137163
geospatial queries.
138164

139165
Aggregation Operators
140-
~~~~~~~~~~~~~~~~~~~~~
166+
`````````````````````
141167

142168
{+django-odm+} does not contain any custom Django field lookups for the MongoDB
143169
aggregation framework. Instead, use the ``raw_aggregate()`` method. For more
@@ -147,7 +173,7 @@ the :ref:`django-raw-queries` guide.
147173
.. TODO: Link to aggregation
148174

149175
Database Functions
150-
~~~~~~~~~~~~~~~~~~
176+
``````````````````
151177

152178
{+django-odm+} does not support the following database functions:
153179

@@ -166,8 +192,10 @@ Database Functions
166192
The ``tzinfo`` parameter of the ``Trunc`` database functions doesn't work
167193
properly because MongoDB converts the result back to UTC.
168194

195+
.. _django-limitations-management:
196+
169197
Django Management Command Limitations
170-
-------------------------------------
198+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171199

172200
{+django-odm+} does not support the following Django management commands:
173201

@@ -177,8 +205,10 @@ Django Management Command Limitations
177205
- ``sqlflush``
178206
- ``sqlsequencereset``
179207

208+
.. _django-limitations-migration:
209+
180210
Migration Limitations
181-
---------------------
211+
~~~~~~~~~~~~~~~~~~~~~
182212

183213
- {+django-odm+} does not support enforced schema validation. To learn how to
184214
enforce schema validation in your application, see the :manual:`Specify JSON
@@ -188,24 +218,145 @@ Migration Limitations
188218
<{+django-docs+}/topics/migrations/#transactions>`__.
189219
- {+django-odm+} does not support the ``migrate --fake-initial`` command.
190220

191-
Asynchronous Support
192-
--------------------
221+
.. _django-limitations-async:
222+
223+
Asynchronous Limitations
224+
~~~~~~~~~~~~~~~~~~~~~~~~
193225

194226
{+django-odm+} has not been tested for support of the asynchronous functionality of
195227
the Django API.
196228

229+
.. _django-limitations-data:
230+
197231
Data Types
198-
----------
232+
~~~~~~~~~~
199233

200234
{+django-odm+} does not have a custom ``Field`` class for the ``BSONRegExp``
201235
data type. Instead, use the ``CharField`` class.
202236

237+
.. _django-limitations-performance:
238+
203239
Performance
204-
-----------
240+
~~~~~~~~~~~
205241

206242
The engineering team is prioritizing feature development for the Public Preview
207243
release of {+django-odm+}. Because of this, you might notice performance
208244
limitations with certain workloads. If you encounter any performance issues,
209245
please report them as shown in the :ref:`Issues & Help <django-issues-and-help>`
210246
guide. You can also share your feedback on the `Drivers Feedback Forum
211247
<https://feedback.mongodb.com/forums/924286-drivers?category_id=370732>`__.
248+
249+
Upcoming Features
250+
-----------------
251+
252+
In this section, you can learn about the following
253+
types of {+framework+} and MongoDB features that
254+
General Availability (GA) and post-GA {+django-odm+} releases
255+
will likely introduce:
256+
257+
- :ref:`django-upcoming-models`
258+
- :ref:`django-upcoming-database`
259+
- :ref:`django-upcoming-third-party`
260+
- :ref:`django-upcoming-management`
261+
- :ref:`django-upcoming-variables`
262+
- :ref:`django-upcoming-async`
263+
264+
.. _django-upcoming-models:
265+
266+
Model Features
267+
~~~~~~~~~~~~~~
268+
269+
We plan to support the following model features in
270+
upcoming releases:
271+
272+
- Creating arrays of embedded documents
273+
- Creating polymorphic embedded documents and arrays
274+
- Applying changes to the schema of embedded models to
275+
``EmbeddedModelField`` values
276+
- Creating multiple models within a collection
277+
- Using forms in embedded models
278+
- Resolve the ``JSONField`` limitations listed in the
279+
:ref:`Field limitations <django-limitations-models-fields>` section of
280+
this guide
281+
- Using a custom ``Field`` class for the ``BSONRegExp`` data type
282+
283+
.. _django-upcoming-database:
284+
285+
Database Features
286+
~~~~~~~~~~~~~~~~~
287+
288+
We plan to support the following database features in
289+
upcoming releases:
290+
291+
- Creating Vector Search, Atlas Search, and geospatial indexes
292+
- Performing Vector Search, Atlas Search, and geospatial queries
293+
- Encrypting data by using Queryable Encryption and Client-side Field Level Encryption
294+
- Running database transactions
295+
- Using specialized aggregation operators
296+
- Specifying schema validation
297+
- Using GridFS to store large files
298+
- Opening change streams to monitor your data
299+
300+
.. tip::
301+
302+
To learn more about the MongoDB features mentioned in this section, see
303+
the following resources:
304+
305+
- :atlas:`Atlas Vector Search </atlas-vector-search/vector-search-overview/>` in the Atlas documentation
306+
- :atlas:`Atlas Search </atlas-search>` in the Atlas documentation
307+
- :manual:`Geospatial Queries </geospatial-queries/>` in the {+mdb-server+}
308+
manual
309+
- :manual:`In-Use Encryption </security-in-use-encryption/>` in the {+mdb-server+}
310+
manual
311+
- :manual:`Transactions </transactions/>` in the {+mdb-server+}
312+
manual
313+
- :manual:`GridFS </gridfs/>` in the {+mdb-server+}
314+
manual
315+
- :manual:`Change Streams </changeStreams/>` in the {+mdb-server+}
316+
manual
317+
318+
.. _django-upcoming-third-party:
319+
320+
Third Party Features
321+
~~~~~~~~~~~~~~~~~~~~
322+
323+
We plan to support the following third-party features in
324+
upcoming releases:
325+
326+
- `Django-filter <https://django-filter.readthedocs.io/en/stable/>`__
327+
- `Django Rest Framework <https://www.django-rest-framework.org/>`__
328+
- `Django-allauth <https://docs.allauth.org/en/latest/>`__
329+
- `Wagtail <https://wagtail.org/>`__
330+
- `Django Debug Toolbar <https://django-debug-toolbar.readthedocs.io/en/latest/>`__
331+
332+
.. _django-upcoming-management:
333+
334+
Django Management Command Features
335+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
336+
337+
We plan to support the following Django commands in
338+
upcoming releases:
339+
340+
- ``dumpdata``
341+
- ``loaddata``
342+
- ``inspectdb``
343+
- ``optimizemigration``
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 upcoming 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 future
362+
releases.

0 commit comments

Comments
 (0)