1
1
.. _django-limitations:
2
2
3
- ============
4
- Limitations
5
- ============
3
+ =================================
4
+ Limitations and Upcoming Features
5
+ =================================
6
6
7
7
.. contents:: On this page
8
8
:local:
@@ -27,8 +27,28 @@ releases based on user demand. You can request support for a feature by leaving
27
27
a suggestion on the `Drivers Feedback Forum
28
28
<https://feedback.mongodb.com/forums/924286-drivers?category_id=370732>`__.
29
29
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
+
30
50
Unsupported Database Variables
31
- ------------------------------
51
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32
52
33
53
The following database variables are not supported by {+django-odm+}:
34
54
@@ -37,16 +57,18 @@ The following database variables are not supported by {+django-odm+}:
37
57
- ``CONN_HEALTH_CHECKS``
38
58
- ``TIME_ZONE``
39
59
60
+ .. _django-limitations-models:
61
+
40
62
Model Limitations
41
- -----------------
63
+ ~~~~~~~~~~~~~~~~~
42
64
43
65
The following limitations apply to models in {+django-odm+}:
44
66
45
67
- {+django-odm+} enforces a one-to-one mapping between a Django model and a
46
68
MongoDB collection. Because of this, multiple models cannot share the same collection.
47
69
48
70
Indexes
49
- ~~~~~~~
71
+ ```````
50
72
51
73
{+django-odm+} does not support the following index functionalities:
52
74
@@ -59,8 +81,10 @@ To learn how to run unsupported database operations by operating directly on
59
81
your ``MongoClient`` instance, see :ref:`django-client-operations` in the
60
82
Perform Raw Database Queries guide.
61
83
84
+ .. _django-limitations-models-fields:
85
+
62
86
Fields
63
- ~~~~~~
87
+ ``````
64
88
65
89
{+django-odm+} has the following limitations on the specified field types:
66
90
@@ -115,8 +139,10 @@ The following field types are unavailable in {+django-odm+}:
115
139
- ``BigAutoField``
116
140
- ``SmallAutoField``
117
141
142
+ .. _django-limitations-query:
143
+
118
144
Querying Limitations
119
- --------------------
145
+ ~~~~~~~~~~~~~~~~~~~~
120
146
121
147
{+django-odm+} does not support the following ``QuerySet`` API methods:
122
148
@@ -130,14 +156,14 @@ Querying Limitations
130
156
that span multiple collections.
131
157
132
158
Geospatial Queries
133
- ~~~~~~~~~~~~~~~~~~
159
+ ``````````````````
134
160
135
161
- {+django-odm+} does not support ``GeoDjango``.
136
162
- {+django-odm+} does not have any Django lookup operators for MongoDB-specific
137
163
geospatial queries.
138
164
139
165
Aggregation Operators
140
- ~~~~~~~~~~~~~~~~~~~~~
166
+ `````````````````````
141
167
142
168
{+django-odm+} does not contain any custom Django field lookups for the MongoDB
143
169
aggregation framework. Instead, use the ``raw_aggregate()`` method. For more
@@ -147,7 +173,7 @@ the :ref:`django-raw-queries` guide.
147
173
.. TODO: Link to aggregation
148
174
149
175
Database Functions
150
- ~~~~~~~~~~~~~~~~~~
176
+ ``````````````````
151
177
152
178
{+django-odm+} does not support the following database functions:
153
179
@@ -166,8 +192,10 @@ Database Functions
166
192
The ``tzinfo`` parameter of the ``Trunc`` database functions doesn't work
167
193
properly because MongoDB converts the result back to UTC.
168
194
195
+ .. _django-limitations-management:
196
+
169
197
Django Management Command Limitations
170
- -------------------------------------
198
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171
199
172
200
{+django-odm+} does not support the following Django management commands:
173
201
@@ -177,8 +205,10 @@ Django Management Command Limitations
177
205
- ``sqlflush``
178
206
- ``sqlsequencereset``
179
207
208
+ .. _django-limitations-migration:
209
+
180
210
Migration Limitations
181
- ---------------------
211
+ ~~~~~~~~~~~~~~~~~~~~~
182
212
183
213
- {+django-odm+} does not support enforced schema validation. To learn how to
184
214
enforce schema validation in your application, see the :manual:`Specify JSON
@@ -188,24 +218,145 @@ Migration Limitations
188
218
<{+django-docs+}/topics/migrations/#transactions>`__.
189
219
- {+django-odm+} does not support the ``migrate --fake-initial`` command.
190
220
191
- Asynchronous Support
192
- --------------------
221
+ .. _django-limitations-async:
222
+
223
+ Asynchronous Limitations
224
+ ~~~~~~~~~~~~~~~~~~~~~~~~
193
225
194
226
{+django-odm+} has not been tested for support of the asynchronous functionality of
195
227
the Django API.
196
228
229
+ .. _django-limitations-data:
230
+
197
231
Data Types
198
- ----------
232
+ ~~~~~~~~~~
199
233
200
234
{+django-odm+} does not have a custom ``Field`` class for the ``BSONRegExp``
201
235
data type. Instead, use the ``CharField`` class.
202
236
237
+ .. _django-limitations-performance:
238
+
203
239
Performance
204
- -----------
240
+ ~~~~~~~~~~~
205
241
206
242
The engineering team is prioritizing feature development for the Public Preview
207
243
release of {+django-odm+}. Because of this, you might notice performance
208
244
limitations with certain workloads. If you encounter any performance issues,
209
245
please report them as shown in the :ref:`Issues & Help <django-issues-and-help>`
210
246
guide. You can also share your feedback on the `Drivers Feedback Forum
211
247
<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