Docs Menu
Docs Home
/ /
Backend de Django MongoDB

Limitaciones y próximas funciones

En esta página, encontrará una lista de las funciones que Django MongoDB Backend no admite. También encontrará las funciones planificadas para las versiones de disponibilidad general (GA) y posteriores. 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.

En esta sección, puede obtener información sobre los siguientes tipos de características no compatibles de Django y MongoDB:

La ejecución de consultas utiliza el comportamiento predeterminado de Django y MongoDB, el modo de confirmación automática. Cada consulta se confirma inmediatamente en la base de datos.

Las API de gestión de transacciones de Django no están soportadas.

Django no admite el patrón polimórfico de MongoDB, donde modelos ligeramente diferentes comparten la misma colección.

Django MongoDB Backend no admite las siguientes funcionalidades de índice:

  • Creando $vectorSearch y $search índices a través de la API de índices de Django

  • Creación de índices geoespaciales a través de la API de índices de Django

  • Actualización de índices en EmbeddedModelFields después de la creación del modelo

Django MongoDB Backend presenta las siguientes limitaciones para los tipos de campos especificados:

  • ArrayField

    • ArrayField el polimorfismo no es compatible.

    • No se admiten valores anidados de EmbeddedModelField dentro de un ArrayField.

  • EmbeddedModelField

    • EmbeddedModel Los cambios de esquema no se registran después de la creación.

    • Los documentos incrustados no pueden aceptar claves externas de Django.

    • No se admiten campos de modelo incrustados arbitrarios o sin tipo. Debe derivar todos los campos de una clase EmbeddedModel.

  • JSONField

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

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

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

  • DateTimeField

    • La granularidad en microsegundos para valores DateTimeField no está soportada.

  • DurationField

    • DurationField almacena milisegundos en lugar de microsegundos.

  • ForeignKey

Los siguientes tipos de campos no están disponibles en Django MongoDB Backend:

  • GeneratedField

  • AutoField (incluidos BigAutoField y SmallAutoField)

Django MongoDB Backend no admite los siguientes métodos de API QuerySet:

  • difference()

  • extra()

  • intersection()

  • prefetch_related()

  • raw()

  • select_for_update()

Django MongoDB Backend no admite consultas QuerySet.delete() y update() que abarquen múltiples colecciones.

Django MongoDB Backend no admite las siguientes funciones de consulta geoespacial:

  • GeoDjango

  • Operadores de búsqueda de Django para consultas geoespaciales específicas de MongoDB

Django MongoDB Backend no incluye ninguna búsqueda de campo personalizada de Django para el marco de agregación de MongoDB. En lugar de ello, utiliza el método raw_aggregate(). Consulta la guía Realizar queries sin procesar en bases de datos.

Django MongoDB Backend no admite las siguientes funciones de base de datos:

  • Chr

  • ExtractQuarter

  • MD5

  • Now

  • Ord

  • Pad

  • Repeat

  • Reverse

  • Right

  • SHA1, SHA224, SHA256, SHA384, SHA512

  • Sign

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

Los siguientes comandos django-admin no son compatibles:

Django MongoDB Backend no admite las siguientes funciones de migración:

El almacenamiento en caché de la base de datos utiliza el comando createcachecollection de Django MongoDB Backend en lugar del comando createcachetable específico de SQL de Django.

En segundo lugar, debes utilizar el backend django_mongodb_backend.cache.MongoDBCache en lugar del backend de caché de base de datos integrado de Django, django.core.cache.backends.db.DatabaseCache.

El equipo de ingeniería está priorizando el desarrollo de funciones para la versión preliminar pública de Django MongoDB Backend. Por ello, es posible que observe limitaciones de rendimiento con ciertas cargas de trabajo. Si encuentra algún problema de rendimiento, infórmelo como se indica en la guía de Problemas y Ayuda.

En esta sección puedes aprender sobre los siguientes tipos de funcionalidades de Django y MongoDB que probablemente se introducirán en lanzamientos de Django MongoDB backend en GA y posteriores a GA:

Planeamos admitir las siguientes características de MongoDB en la versión GA:

  • Gestión programática de búsqueda vectorial, búsqueda en Atlas e índices geoespaciales mediante la API de Django

  • Búsqueda vectorial, búsqueda en Atlas y consultas geoespaciales mediante la API de Django

  • Cifrado consultable y cifrado a nivel de campo del lado del cliente

  • Transacciones de base de datos

Planeamos soportar las siguientes funcionalidades de MongoDB en futuras versiones de publicación GA:

  • GridFS para almacenamiento de archivos grandes

  • Flujos de cambios para la monitorización de datos

  • Validación de esquema

Tip

Para obtener más información sobre las características de MongoDB mencionadas en esta sección, consulte los siguientes recursos:

Planeamos admitir las siguientes características del modelo en la versión GA:

  • Matrices de documentos incrustados

  • Documentos y matrices incrustados polimórficos

  • Aplicación de cambios en el esquema del modelo integrado a los valores EmbeddedModelField

  • Múltiples modelos dentro de una colección

  • Representación de formularios mejorada en modelos integrados

En un futuro lanzamiento posterior a la GA, planeamos agregar un campo de modelo personalizado para el tipo de datos BSONRegExp.

El soporte de serialización para EmbeddedModelField (es decir, los comandos de administración dumpdata y loaddata de Django) se agregará en la versión GA.

Planeamos probar la compatibilidad con las siguientes librerías de terceros antes del lanzamiento GA:

Volver

Realizar consultas en bruto

En esta página