Overview
En esta página, puedes encontrar información sobre las funcionalidades soportadas y no soportadas en Django MongoDB Backend. También puedes encontrar funcionalidades actualmente planificadas para futuras versiones. Priorizaremos estas nuevas funcionalidades según la demanda de los usuarios y puedes solicitar soporte para una funcionalidad creando un problema en JIRA.
Limitaciones de rendimiento
Django MongoDB backend permite las siguientes operaciones, pero pueden ser menos eficientes:
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. |
Funcionalidades de MongoDB
Esta sección indica si Django MongoDB Backend admite diversas funcionalidades de MongoDB.
Soporte de índice
Funcionalidad de MongoDB | Soporte actual |
|---|---|
índice de búsqueda | Parcialmente compatible. Los siguientes campos de definición de índice avanzado no son compatibles:
MongoDB no admite los índices de búsqueda en algunos tipos de datos. Para ver una lista de los tipos no admitidos, consulta Limitaciones de tipo de datos en la documentación de MongoDB Atlas. |
Índices de búsqueda vectorial | Soporte parcial. Puede usar Django MongoDB Backend 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. Todos los demás campos de definición de índice no están soportados. |
Índices compuestos | ✓ |
Índices de documentos incrustados | ✓ |
Índices geoespaciales | ✓ |
Multikey indexes | ✓ |
Índices parciales | ✓ |
Índices de un solo campo | ✓ |
Unique indexes | ✓ |
Actualización de los índices del modelo integrado después de la creación del modelo | No admitido. |
| ✓ |
| ✓ |
Soporte de tipo de datos
El backend de Django MongoDB actualmente admite todos los tipos de datos de MongoDB que no están incluidos en la siguiente tabla. Para ver una lista completa de los tipos compatibles, consulta la sección MongoDB BSON Fields de la guía Create Models to Represent Collections.
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
Funcionalidad de MongoDB | Soporte actual |
|---|---|
Operaciones de agregación | Soportado parcialmente. El Backend de Django MongoDB no incluye búsquedas de campos personalizadas de Django para el framework de agregación de MongoDB, pero se puede utilizar el método raw_aggregate(). |
queries de MongoDB Search | ✓ |
Operaciones de borrar | ✓ |
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 actualizar | ✓ |
Los query de MongoDB Vector Search | ✓ |
Soporte de bases de datos y colecciones
Funcionalidad de MongoDB | Soporte actual |
|---|---|
Soporte asincrónico | ✓ |
Autenticación | ✓ |
Almacenamiento de datos en caché | No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA. |
Flujos de cambio | No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA. |
Encriptación a nivel de campo | No admitido. |
Interacción de la colección | ✓ |
Interacción con la base de datos | ✓ |
GridFS | No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA. |
Múltiples modelos para una colección | No admitido. |
Queryable Encryption | ✓ |
Representando documentos | ✓ Use models to represent MongoDB documents. |
Validación de esquema | No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA. |
Datos de Time Series | ✓ |
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. |
Funcionalidades 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 admite actualmente todos los campos de Django que no estén incluidos en la siguiente tabla. Para ver una lista completa de los campos compatibles, consulta la sección Campos de Django de la guía Crear Modelos.
Tipo de campo Django | Soporte actual |
|---|---|
| No compatible. Los |
| No admitido. |
| ✓ Microsecond granularity for DateTimeField values is not supported. |
| ✓ DurationField stores milliseconds rather than microseconds. |
| Soportado parcialmente. Se puede utilizar este tipo de campo con las siguientes limitaciones:
|
| No admitido. |
| Soportado parcialmente. Se puede utilizar este tipo de campo con las siguientes limitaciones:
|
Soporte de query
Django MongoDB Backend actualmente es compatible con todos los métodos QuerySet de Django no incluidos en la siguiente tabla. Para ver los métodos compatibles, consulta QuerySet API en la documentación de Django.
Funcionalidad de Django QuerySet | Soporte actual |
|---|---|
| ✓ You cannot use this method to perform
queries that span multiple collections. |
| No admitido. |
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 |
| No admitido. |
| No compatible. Sin embargo, puedes utilizar el método |
| No admitido. |
| ✓ 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 la base de datos que no están incluidas en la siguiente tabla. Para ver una lista completa de funciones, consulte Funciones de base de datos en la documentación de Django.
Función de Django | Soporte actual |
|---|---|
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
| No admitido. |
|
Soporte de la aplicación Contrib
Funcionalidad 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
El backend Django MongoDB es compatible con los formularios de Django, pero PolymorphicEmbeddedModelField y PolymorphicEmbeddedModelArrayField no aparecen en formularios.
Soporte para 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 |
|---|---|
| No admitido. |
| No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA. |
| No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA. |
| No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA. |
Soporte para la migración
Funcionalidad Django | Soporte actual |
|---|---|
Creando, borrando y actualizando índices mediante comandos de migración | Soportado parcialmente. No puedes actualizar los índices en modelos integrados o en campos de arreglo. |
No admitido. | |
| No admitido. |
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. | |
Soportado parcialmente. Para aprender más sobre los casos de uso y las limitaciones de esta librería, consulta Django rest framework en la documentación de Django MongoDB CLI. | |
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. |