Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Compatibilidad de funcionalidades de Django y MongoDB

En esta página, puedes encontrar información sobre las funcionalidades compatibles y no compatibles en el backend de MongoDB de Django. También puedes encontrar funcionalidades que actualmente están planeadas para lanzamientos futuros. Priorizaremos estas próximas funcionalidades según la demanda de los usuarios, y se puede solicitar soporte para una funcionalidad creando un problema en JIRA.

Django MongoDB backend permite las siguientes operaciones, pero pueden ser menos eficientes:

Operación
Notas de rendimiento

$expr Operaciones

Las consultas que utilizan el $expr operador pueden ser lentas, ya que este operador a menudo no puede predecir qué índice usar y realiza un escaneo de la colección. Algunas QuerySet operaciones, como las consultas que especifican una in búsqueda, utilizan $expr para evaluar los resultados de la consulta y experimentan un rendimiento degradado.
Planeamos solucionar este problema de rendimiento en una versión posterior al lanzamiento general.

$lookup Operaciones

Las consultas que utilizan el $lookup operador pueden ser lentas. Para mejorar el rendimiento, recomendamos usar modelos integrados en lugar del $lookup operador siempre que sea posible. Para obtener más información sobre cómo reducir las $lookup operaciones, consulte la guía Reducir operaciones $lookup en la documentación de MongoDB Atlas.

Esta sección indica si Django MongoDB Backend admite diversas funcionalidades de MongoDB.

Funcionalidad de MongoDB
Soporte actual

índice de búsqueda

Parcialmente compatible. Los siguientes campos de definición de índice avanzados no son compatibles:

  • numPartitions

  • analyzers

  • storedSource

  • synonyms

  • typeSets

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 de modelos incrustados después de la creación del modelo

No admitido.

EmbeddedModelArrayField indexes

PolymorphicEmbeddedModelField y los índices PolymorphicEmbeddedModelArrayField

No admitido.

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

Object


Puede usar modelos incrustados y modelos incrustados polimórficos para representar objetos. Si usa el EmbeddedModelField campo, se aplican las siguientes limitaciones:
* No se admiten campos de clave externa.
* No se admiten campos de modelos incrustados arbitrarios o sin tipo. Debe derivar todos los campos de una EmbeddedModel clase.

Regular Expression

No compatible. Sin embargo, planeamos tener compatibilidad con este tipo en una versión posterior a GA.

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


Utilice el método raw_aggregate() para ejecutar consultas geoespaciales en lugar de la API GIS QuerySet.

Operaciones de inserción

Operaciones de lectura

Operaciones de actualizar

Los query de MongoDB Vector Search

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.

Cifrado a nivel de campo del lado del cliente y Queryable Encryption

No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA.

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.

Representando documentos


Utilice modelos para representar documentos de MongoDB.

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


Puedes usar la API de transacciones personalizadas del backend de Django MongoDB con las siguientes limitaciones:
* QuerySet.union() no es compatible dentro de una transacción.
* Los puntos de guardado, o bloques atómicos anidados, no son compatibles. El bloque atómico más externo inicia una transacción, y cualquier bloque atómico posterior no tiene efecto.
* Tu implementación de MongoDB debe ser un conjunto de réplicas o un clúster fragmentado.

Esta sección indica si el Backend MongoDB de Django es compatible con varias funcionalidades de Django.

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

AutoField

No compatible. Los tipos BigAutoField y SmallAutoField tampoco se admiten. En su lugar, use ObjectIdField.

CompositePrimaryKey

No admitido.

DateTimeField

✓ No se admite la
granularidad de microsegundos para valores.DateTimeField

DurationField


DurationField almacena milisegundos en lugar de microsegundos.

ForeignKey

Soportado parcialmente. Se puede utilizar este tipo de campo con las siguientes limitaciones:

  • Cuando sea posible, se debe utilizar un EmbeddedModelField en lugar de un campo ForeignKey para evitar el uso de operaciones $lookup. Un EmbeddedModelField emula un documento incrustado de MongoDB y rinde mejor que un campo ForeignKey. Para aprender más sobre cómo reducir las operaciones de $lookup, consulta la guía Reducir las Operaciones de $lookup en la documentación de Atlas.

  • El rendimiento de CASCADE deletes en un campo ForeignKey no es tan eficiente como usar un EmbeddedModelField.

GeneratedField

No admitido.

JSONField

Soportado parcialmente. Se puede utilizar este tipo de campo con las siguientes limitaciones:

  • El backend de Django MongoDB no puede distinguir entre un valor null de JSON y de SQL. Las consultas que utilizan Value(None, JSONField()) o la búsqueda isnull devuelven tanto valores JSON como SQL null.

  • Algunas consultas con Q objetos, como Q(value__foo="bar"), podrían no funcionar como se espera.

  • El filtrado de valores None devuelve incorrectamente objetos en los que un campo no existe.

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

delete()


No puede utilizar este método para realizar consultas que abarquen varias colecciones.

difference()

No admitido.

extra()

No admitido.

intersection()

No admitido.

Consultas de búsqueda por patrón


Solo puede usar estas búsquedas para consultar campos de cadena.
Las búsquedas de coincidencia de patrones son,,,,,,, y.iexactstartswithistartswithendswithiendswithcontainsicontainsregex iregex

prefetch_related()

No admitido.

raw()

No compatible. Sin embargo, puedes utilizar el método raw_aggregate() para ejecutar consultas que usen la sintaxis del pipeline de agregación de MongoDB.

select_for_update()

No admitido.

update()


No puede utilizar este método para realizar consultas que abarquen varias colecciones.

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

Chr

No admitido.

ExtractQuarter

No admitido.

MD5

No admitido.

Ord

No admitido.

Pad

No admitido.

Repeat

No admitido.

Reverse

No admitido.

Right

No admitido.

SHA1, SHA224, SHA256, SHA384, SHA512

No admitido.

Sign

No admitido.

Trunc

Soportado parcialmente. El parámetro tzinfo de las funciones de base de datos TruncDate y TruncTime no es compatible.

Funcionalidad Django
Soporte actual

Administrador de Django

Autenticación de Django

GeoDjango

Parcialmente compatible. Este framework web se admite con las siguientes limitaciones:

  • El API de QuerySet GIS no es compatible.

  • MongoDB no admite ningún identificador de sistema de referencia espacial aparte de 4326.

  • RasterField no está soportado.

El backend Django MongoDB es compatible con los formularios de Django, pero PolymorphicEmbeddedModelField y PolymorphicEmbeddedModelArrayField no aparecen en formularios.

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

createcachetable

No admitido.

dumpdata

No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA.

inspectdb

No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA.

loaddata

No compatible. Sin embargo, planeamos agregar soporte para esta funcionalidad en una versión posterior a GA.

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.

migrate --fake-initial Opción

No admitido.

Migraciones para modelos integrados

Parcialmente compatible. Los comandos de migración no detectan cambios en los campos de modelos integrados ni en los modelos integrados referenciados por un PolymorphicEmbeddedModelField o un PolymorphicEmbeddedModelArrayField.

Librería
Soporte actual

Parcialmente compatible. Para obtener más información sobre los casos de uso y las limitaciones de esta librería, consulte filtro Django en la documentación de Django MongoDB CLI.

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 limitaciones de esta librería, 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 librería, consulte Barra de herramientas de depuración de Django en la documentación de MongoDB CLI de Django.