Overview
En esta página, encontrará información sobre las funciones compatibles y no compatibles con el backend de Django MongoDB. También encontrará funciones planificadas para futuras versiones. Priorizaremos estas próximas funciones según la demanda de los usuarios, y puede solicitar soporte para una función por creando un problema de JIRA.
Limitaciones de rendimiento
Django MongoDB Backend admite las siguientes operaciones, pero pueden tener menor rendimiento:
Operación | Notas de rendimiento |
|---|---|
| Queries that use the $expr operator might run slowly, since
this operator often cannot predict which index to use and performs
a collection scan. Some QuerySet operations, such as queries that
specify an in lookup, use $expr to evaluate the query results and
experience degraded performance.We plan to address this performance issue in a
post-GA release. |
| Queries that use the $lookup operator might run slowly.
To improve performance, we recommend that you use embedded
models instead of the $lookup operator when possible.
To learn more about how to reduce $lookup operations, see the Reduce $lookup Operations guide in the MongoDB Atlas
documentation. |
Características de MongoDB
Esta sección indica si Django MongoDB Backend admite varias funciones de MongoDB.
Soporte de índice
Característica de MongoDB | Soporte actual |
|---|---|
Índices de búsqueda | Parcialmente compatible. Los siguientes campos de definición de índice avanzado no son compatibles:
MongoDB no admite índices de búsqueda en algunos tipos de datos. Para ver una lista de tipos no compatibles, consulte Limitaciones de tipos de datos en la documentación de MongoDB Atlas. |
Índices de búsqueda vectorial | Parcialmente compatible. Puede usar el backend de Django MongoDB para crear índices básicos de búsqueda vectorial que especifiquen un nombre de índice, los campos a indexar y una función de similitud. Los demás campos de definición de índice no son compatibles. |
Índices compuestos | ✓ |
Índices de documentos incrustados | ✓ |
Índices geoespaciales | ✓ |
Multikey indexes | ✓ |
Índices parciales | ✓ |
Índices de campo único | ✓ |
Unique indexes | ✓ |
Actualización de los índices del modelo integrado después de la creación del modelo | Sin soporte. |
| ✓ |
| Sin soporte. |
Compatibilidad con tipos de datos
El backend de Django MongoDB actualmente admite todos los tipos de datos de MongoDB no incluidos en la siguiente tabla. Para ver la lista completa de tipos compatibles, consulte la sección "Campos BSON de MongoDB" de la guía "Crear modelos".
Tipo de dato BSON | Soporte actual |
|---|---|
| ✓ You can use embedded models and polymorphic embedded models to represent objects.
If you are using the EmbeddedModelField field, the following
limitations apply:* Foreign key fields are not supported. * Arbitrary or untyped embedded model fields are not supported. You must derive all fields from an EmbeddedModel class. |
Soporte de query
Característica de MongoDB | Soporte actual |
|---|---|
Operaciones de agregación | Parcialmente compatible. El backend de Django MongoDB no incluye búsquedas de campos personalizados para el marco de agregación de MongoDB, pero se puede usar el método raw_aggregate(). |
Consultas de búsqueda de MongoDB | ✓ |
Operaciones de eliminación | ✓ |
Query geoespacial | ✓ You can use the following spatial lookups from the
GIS QuerySet API: * contains* disjoint* distance_gt* distance_lte* dwithin* intersects* withinFor other geospatial queries, use the raw_aggregate() method. |
Operaciones de inserción | ✓ |
Operaciones de lectura | ✓ |
Operaciones de actualización | ✓ |
Consultas de búsqueda vectorial de MongoDB | ✓ |
Soporte de bases de datos y colecciones
Característica de MongoDB | Soporte actual |
|---|---|
Soporte asincrónico | ✓ |
Autenticación | ✓ |
Almacenamiento de datos en caché | No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
Flujos de cambio | No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
Cifrado a nivel de campo del lado del cliente y cifrado consultable | No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
Interacción de la colección | ✓ |
Interacción con la base de datos | ✓ |
GridFS | No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
Múltiples modelos para una sola colección | Sin soporte. |
Representando documentos | ✓ Use models to represent MongoDB documents. |
Validación de esquema | No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
Datos de series temporales | ✓ |
Transacciones | ✓ You can use Django MongoDB Backend's custom transactions API with the
following limitations: * QuerySet.union() is not supported within a transaction.* Savepoints, or nested atomic blocks, are not supported. The outermost atomic block starts
a transaction, and any subsequent atomic blocks have no effect. * Your MongoDB deployment must be a replica set or sharded cluster. |
Características de Django
Esta sección indica si el Backend MongoDB de Django es compatible con varias funcionalidades de Django.
Soporte de campos
El backend de Django MongoDB actualmente admite todos los campos de Django no incluidos en la siguiente tabla. Para ver la lista completa de campos compatibles, consulte la sección "Campos de Django" de la guía "Crear modelos".
Tipo de campo de Django | Soporte actual |
|---|---|
| No compatible. Los |
| Sin soporte. |
| ✓ Microsecond granularity for DateTimeField values is not supported. |
| ✓ DurationField stores milliseconds rather than microseconds. |
| Parcialmente compatible. Puede usar este tipo de campo con las siguientes limitaciones:
|
| Sin soporte. |
| Parcialmente compatible. Puede usar este tipo de campo con las siguientes limitaciones:
|
Soporte de query
El backend de Django MongoDB actualmente admite todos los QuerySet métodos de Django no incluidos en la siguiente tabla. Para ver los métodos compatibles, consulte la API de QuerySet en la documentación de Django.
Característica QuerySet de Django | Soporte actual |
|---|---|
| ✓ You cannot use this method to perform
queries that span multiple collections. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
Búsquedas de coincidencia de patrones | ✓ You can only use these lookups to query string fields. The pattern-matching lookups are iexact, startswith, istartswith,
endswith, iendswith, contains, icontains, regex, and
iregex |
| Sin soporte. |
| No compatible. Sin embargo, puede usar el |
| Sin soporte. |
| ✓ You cannot use this method to perform
queries that span multiple collections. |
Soporte de funciones de base de datos
El backend de Django MongoDB actualmente admite todas las funciones de base de datos no incluidas en la siguiente tabla. Para ver la lista completa de funciones, consulte "Funciones de base de datos" en la documentación de Django.
Función de Django | Soporte actual |
|---|---|
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
| Sin soporte. |
|
Soporte de la aplicación Contrib
Característica de Django | Soporte actual |
|---|---|
Administrador de Django | ✓ |
Autenticación de Django | ✓ |
GeoDjango | Parcialmente compatible. Este framework web es compatible con las siguientes limitaciones:
|
Soporte de formularios
Django MongoDB Backend admite formularios de Django, pero PolymorphicEmbeddedModelField y PolymorphicEmbeddedModelArrayField no aparecen en los formularios.
Soporte de Comando de Gestión
El backend de MongoDB para Django actualmente es compatible con todos los comandos de gestión excepto los incluidos en la siguiente tabla. Para ver una lista completa de comandos, consulta Comandos disponibles en la documentación de Django.
Comando de Django | Soporte actual |
|---|---|
| Sin soporte. |
| No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
| No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
| No compatible. Sin embargo, planeamos añadir compatibilidad con esta función en una versión posterior a la disponibilidad general. |
Soporte para la migración
Característica de Django | Soporte actual |
|---|---|
Creación, eliminación y actualización de índices mediante comandos de migración | Parcialmente compatible. No se pueden actualizar índices en campos de modelos o matrices incrustados. |
Sin soporte. | |
| Sin soporte. |
Migraciones para modelos integrados | Parcialmente compatible. Los comandos de migración no detectan cambios en los campos de modelo incrustados ni en los modelos incrustados referenciados por |
Soporte para librerías de terceros
Librería | Soporte actual |
|---|---|
Parcialmente compatible. Para obtener más información sobre los casos de uso y las limitaciones de esta biblioteca, consulte el filtro de Django en la documentación de la CLI de Django MongoDB. | |
Parcialmente compatible. Para obtener más información sobre los casos de uso y las limitaciones de esta biblioteca, consulte el framework Django REST en la documentación de la CLI de Django MongoDB. | |
Parcialmente compatible. Para obtener más información sobre los casos de uso y las limitaciones de esta biblioteca, consulte Django allauth en la documentación de la CLI de Django MongoDB. | |
Parcialmente compatible. Para obtener más información sobre los casos de uso y las limitaciones de esta biblioteca, consulte la barra de herramientas de depuración de Django en la documentación de la CLI de Django MongoDB. |