Descubra qué hay de nuevo en:
Novedades en 6.0
Esta sección enumera los cambios introducidos en las siguientes versiones parche:
Versión 6.0.3
La versión v6.0.3 de Django MongoDB backend incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega soporte para
ObjectIdcoincidencia en los patrones de URL. Para obtener más información, consulta Despachador de URL en la documentación de la API.Añade soporte para índices en los subcampos
PolymorphicEmbeddedModelFieldyPolymorphicEmbeddedModelArrayField. Utiliza la misma sintaxis que los índices de subcamposEmbeddedModelField, como se muestra en el índice de subcampos del modelo incrustado sección de la guía Crear índices.Agrega soporte para restricciones únicas en los subcampos
PolymorphicEmbeddedModelFieldyPolymorphicEmbeddedModelArrayField. Utiliza la misma sintaxis que las restricciones de unicidad de subcampoEmbeddedModelField, como se muestra en la sección Restricciones de campo incrustado de la guía Crear Modelos.Actualiza la operación
str(queryset.query)para que genere MQL en lugar de SQL.Evita la creación de modelos que tengan campos cifrados en bases de datos no cifradas al generar un error cuando Queryable Encryption no está configurado.
Instruye al comando
makemigrationspara que serialice las referencias de modelos incrustados como cadenas. Como resultado, no necesitas ajustar las referencias de modelo en las migraciones si los modelos se eliminan más tarde.Agrega un
NotSupportedErrorpara los métodosQuerySet.extra(where=...)yStringAgg(..., distinct=True), que anteriormente devolvían errores menos específicos.Deprecia el uso de
unique=True,db_index=True,Meta.constraints,Meta.indexesyMeta.unique_togetherpara definir índices y restricciones en campos de modelos embebidos. En cambio, useEmbeddedFieldIndexyEmbeddedFieldUniqueConstrainten el modelo de nivel superior. Para obtener más información sobre la nueva sintaxis, consulta el Índice de subcampos de modelo embebido y Restricciones de campos embebidos.
Versión 6.0.2
La versión v6.0.2 de Django MongoDB backend incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega soporte para los métodos
QuerySet.intersection()yQuerySet.difference().Agrega compatibilidad con el parámetro
nulls_distinctdel constructorUniqueConstraint, lo que permite almacenar solo un documento que tenga un valorNULL. Para obtener más información, consulta Especificar restricciones únicas en la guía Crear modelos.Se añade la clase
EmbeddedFieldIndex, que activa los índices en los subcampos de los valores deEmbeddedModelFieldyEmbeddedModelArrayField. Para obtener más información, consulta Índice de Subcampo de Modelo Incorporado en la guía Crear Índices.Añade la clase
EmbeddedFieldUniqueConstraint, que habilita restricciones únicas en subcampos de los valores deEmbeddedModelFieldyEmbeddedModelArrayField. Para obtener más información, consulte Restricciones de campos incorporados en la guía Crear modelos.Corrige un error que causaba un mensaje de error al llamar
Model.save()en modelos con campos cifrados.
Versión 6.0.1
La versión v6.0.1 de Django MongoDB backend incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega compatibilidad para Queryable Encryption. Para obtener más información, consulta el tutorial sobre Queryable Encryption.
Agrega soporte para búsquedas espaciales. Para obtener más información, consulte Consultar valores geoespaciales en la guía Especificar una consulta.
Evita que se ejecuten dos veces las comprobaciones del sistema
Index.Agrega mensajes de excepción a las excepciones
DatabaseErroryIntegrityError.Corrige el comportamiento de
QuerySet.defer()yQuerySet.only()para que los métodos proyecten los campos correctos.Elimina el uso de
$facetde los pipelines de agregación, lo que mejora el rendimiento de las consultas.
Versión 6.0.0
Advertencia
cambio disruptivo
La versión v6.0.0 de Django MongoDB backend presenta los siguientes cambios disruptivos:
Se remueve el soporte para el método
django_mongodb_backend.utils.parse_uri(). En su lugar, use la teclaDATABASES["HOST"]. Para más información, consulta Configurar automáticamente la configuración de la base de datos en la guía Configuración de la conexión de la base de datos.Aumenta la versión mínima admitida de MongoDB de 6.0 a 7.0.
Novedades en 5.2
Esta sección enumera los cambios introducidos en las siguientes versiones parche:
Versión 5.2.4
La versión v5.2.4 de Django MongoDB backend incluye las siguientes funcionalidades, mejoras y correcciones:
Mejora el rendimiento de las operaciones de unión, que utilizan la etapa de agregación de
$lookup, al trasladar condiciones complejas de la etapa de$matcha la de$lookup
Versión 5.2.3
La versión v5.2.3 de Django MongoDB backend incluye las siguientes funcionalidades, mejoras y correcciones:
Evita que las consultas
QuerySet.union()dupliquen la etapa$projectdel pipeline.Actualiza la clase
Valuepara envolver los valores de string, diccionarios y tuplas con el operador$literal, a fin de evitar que MongoDB los interprete como expresiones. De manera similar, las consultas que actualizan los modelos ahora envuelven valores en el operador como$literal, por la misma razón.Simplifica las query
$lookuputilizandolocalFieldyforeignField.
Versión 5.2.2
La versión v5.2.2 de Django MongoDB backend incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega los siguientes argumentos
SearchIndex, que te permiten crear índices más complejos:field_mappingsanalyzersearch_analyzer
Para obtener más información, consulta Índices de búsqueda en la guía de Índices.
Corrige una excepción
KeyErrorque ocurría al cargar modelos que contienen camposEmbeddedModelusando un conversor de bases de datos, si el campo no estaba presente en los datos.Garantiza que el argumento
db_columnse aplique a los camposEmbeddedModel.Corrige el tipo de índice de búsqueda de los valores
EmbeddedModelFieldyPolymorphicEmbeddedModelFielddeembeddedDocumentsadocument.Corrige el error
transaction.atomic()que se producía cuando no se inicializaba la conexión con la base de datos.Desaprueba el método
django_mongodb_backend.utils.parse_uri(). Este método se eliminará en una versión futura.
Versión 5.2.1
La versión v5.2.1 de Django MongoDB backend incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega soporte para especificar la cadena de conexión en la clave
DATABASES["HOST"]en lugar de usar el métododjango_mongodb_backend.utils.parse_uri(). Para obtener más información, consulte Configurar automáticamente la configuración de la base de datos en la guía Configure su conexión de base de datos.Instruye a las operaciones de migración que agregan o eliminan índices de búsqueda que esperen hasta que la operación se complete en el servidor, lo que previene conflictos al ejecutar múltiples operaciones de manera secuencial.
Configura consultas simples que utilizan los siguientes operadores para usar
$matchen lugar de$expr, lo que les permite utilizar índices:$eq$in$and$or$gt$gte$lt$lte
Versión 5.2.0
Django MongoDB Backend v5.2.0 es la versión inicial de disponibilidad general (GA). Para obtener más información sobre las funcionalidades de GA, consulta la entrada de blog Backend de MongoDB para Django ahora disponible en general.
Versión 5.2.0 beta 3
Advertencia
cambio disruptivo
La versión5.2.0 de Django MongoDB Backend la beta 3 introduce el siguiente cambio disruptivo:
Se elimina el soporte para búsquedas de coincidencia de patrones en campos que no son de tipo string o cadena de texto. Anteriormente, estas búsquedas convertían su entrada utilizando el operador
$toString. Esto provocó problemas de rendimiento porque MongoDB no podía utilizar índices al ejecutar la query.
Versión 5.2.0 beta 2
Advertencia
cambio disruptivo
Esta versión libera los siguientes cambios disruptivos:
Limita los valores
django.db.models.SmallIntegerFieldydjango.db.models.PositiveSmallIntegerFielda 32 bits en los formularios y en la validación de modelos.Se remueve la compatibilidad con el almacenamiento en caché de la base de datos. Esto impide que un hacker que haya comprometido la base de datos utilice los valores caché codificados en pickle para ejecutar comandos arbitrarios en el servidor de aplicaciones.
El Backend de Django MongoDB v5.2.0 la beta 2 incluye las siguientes funcionalidades, mejoras y correcciones:
Añade soporte para consultas de búsqueda de MongoDB. Para obtener más información, consulta la guía sobre cómo ejecutar una MongoDB Search query.
Añade soporte de subconsultas para los valores de
EmbeddedModelArrayField. Para aprender más, consulta Query Embedded Model Arreglo Values en la guía Especificar una consulta.Agrega el parámetro
optionsal métododjango_mongodb_backend.utils.parse_uri().Añade soporte para transacciones de base de datos. Para obtener más información, consulta la guía sobre Transacciones y Sesiones.
Agrega los campos
PolymorphicEmbeddedModelFieldyPolymorphicEmbeddedModelArrayField, que almacenan una instancia de modelo o una lista de instancias de modelo que pueden pertenecer a más de una clase de modelo. Para obtener más información, consulte Almacenar datos de modelos incrustados polimórficos en la guía Crear modelos.Agrega soporte para GeoDjango. Para obtener más información, consulte la guía Modelar Datos Geoespaciales.
Actualiza
QuerySet.explain()para devolver una string que pueda ser analizada como JSON.Corrige la generación de restricciones únicas para los campos
IntegerFieldyPositiveBigIntegerField, que permitían incorrectamente valores duplicados mayores de 32 bits. Debes recrear las restricciones únicas existentes para usar$type: longen vez deint.Envía los siguientes campos a MongoDB como valores
bson.int64.Int64, lo que corrige las restricciones únicas en valores inferiores a 32 bits:IntegerFieldBigIntegerFieldPositiveIntegerFieldPositiveBigIntegerFieldDurationField
Mejora el rendimiento
QuerySetal remover el límite inferior en la fragmentación del lado del servidor.Mejora el rendimiento de las operaciones de combinación, que utilizan la etapa de agregación
$lookup, al trasladar algunas condiciones simples de la etapa$matcha la etapa$lookup.
Versión 5.2.0 beta 1
El Backend de Django MongoDB v5.2.0 la beta 1 incluye las siguientes funcionalidades, mejoras y correcciones:
Añade el campo
EmbeddedModelArrayFieldpara almacenar una lista de instancias del modelo. Para obtener más información, consulta Almacenar datos de matriz de modelo integrado en la guía Crear modelos.Corrige un fallo que ocurría al cargar modelos que tienen un valor nulo
ArrayFieldy unbase_fieldutilizando un convertidor de base de datos.
Versión 5.2.0 beta 0
Advertencia
cambio disruptivo
Esta versión libera los siguientes cambios disruptivos:
Aumenta la versión mínima compatible de PyMongo de 4.6 a 4.7.
Remueve el parámetro
conn_max_agededjango_mongodb_backend.utils.parse_uri(). Django MongoDB Backend ahora utiliza conexiones persistentes por defecto.
El Backend de Django MongoDB v5.2.0 la beta 0 incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega las clases
SearchIndexyVectorSearchIndex, que le permiten crear índices de MongoDB Search y Vector Search. Para saber más, consulta Índices de búsqueda y Índices de búsqueda vectorial en la guía Crear índices.Utiliza el agrupamiento de conexiones de PyMongo por defecto.
Agrega soporte para las búsquedas y transformaciones personalizadas de un campo en un
EmbeddedModelField.Corrige los resultados de las consultas que utilizan el parámetro
tzinfode las funciones de base de datosTrunc.Agrega soporte para los métodos
QuerySet.dates()yQuerySet.datetimes().Corrige la carga de
QuerySetresultados para campos de modelos embebidos que usan conversores de bases de datos.
Novedades en 5.1
Esta sección enumera los cambios introducidos en las siguientes versiones parche:
Versión 5.1.0 beta 4
Advertencia
cambio disruptivo
Esta versión presenta el siguiente cambio disruptivo:
Se remueve la compatibilidad con el almacenamiento en caché de la base de datos. Esto impide que un hacker que haya comprometido la base de datos utilice los valores caché codificados en pickle para ejecutar comandos arbitrarios en el servidor de aplicaciones.
El Backend de Django MongoDB v5.1.0 la beta 4 incluye las siguientes funcionalidades, mejoras y correcciones:
Soluciona un fallo que se producía al cargar modelos que tienen un valor
ArrayFieldnulo y donde elbase_fieldutiliza un convertidor de base de datos.Mejora el rendimiento
QuerySetal remover el límite inferior en la fragmentación del lado del servidor.
Versión 5.1.0 beta 3
El Backend de Django MongoDB v5.1.0 la beta 3 incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega soporte para consultas personalizadas de un campo y transformaciones en un
EmbeddedModelFieldCorrige los resultados de las consultas que utilizan el parámetro
tzinfode las funciones de base de datosTruncAñade soporte para los métodos
QuerySet.dates()yQuerySet.datetimes()Corrige la carga de
QuerySetresultados para campos de modelos embebidos que utilizan convertidores de la base de datos
Versión 5.1.0 beta 2
Advertencia
cambio disruptivo
Esta versión presenta el siguiente cambio disruptivo:
Cambia el nombre del parámetro
sizede unArrayFieldpormax_size. El parámetrosizeahora se utiliza para aplicar arreglos de longitud fija.
El Backend de Django MongoDB v5.1.0 la beta 2 incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega soporte para almacenamiento en caché de bases de datos. Este soporte se elimina posteriormente en la v5.1.4.
Corrige la inicialización del campo
QuerySet.raw_aggregate()cuando el orden de las claves del documento no coincide con el orden de los campos del modelo.
Versión 5.1.0 beta 1
Advertencia
cambio disruptivo
Esta versión presenta el siguiente cambio disruptivo:
ObjectIdAutoFieldya no acepta valores enteros
El Backend de Django MongoDB v5.1.0 la beta 1 incluye las siguientes funcionalidades, mejoras y correcciones:
Añade soporte para guardar formularios de modelos anidados o incrustados
Soluciona las conexiones persistentes a la base de datos
Agrega soporte para operaciones asincrónicas
Agrega el parámetro
db_nameal métododjango_mongodb_backend.utils.parse_uri()Agrega un enrutador
django_mongodb_backend.routers.MongoRouter, que garantiza que Django MongoDB backend no cree colecciones para modelos incrustados y que el comandodumpdatano incluya modelos incrustados
Versión 5.1.0 beta 0
Django MongoDB Backend v5.1.0 beta 0 es la versión previa inicial pública. Para aprender más sobre las funcionalidades de la vista previa pública, consulta la entrada de blog "Backend oficial de Django MongoDB ahora disponible en vista previa pública".