Conozca las nuevas funcionalidades, mejoras y correcciones introducidas en las siguientes versiones de la MongoDB PHP librería:
Novedades en 2.3
El lanzamiento de la librería PHP v2.3 incluye las siguientes funcionalidades, mejoras y correcciones:
Se añade soporte para operadores de actualización atómica en la API Builder. Se pueden utilizar métodos de fábrica del
MongoDB\Builder\Updateclase para construir documentos de actualización con finalización de código y verificación de tipos. Para obtener más información, consulte el Sección Actualización de desarrollador de la guía de documentos de actualización.Actualiza el requisito de extensión PHP a la versión 2.3 o posterior.
Deprecia el soporte para MongoDB Server v4.2. Las versiones futuras de la librería PHP requerirán MongoDB Server v4.4 o posterior.
Agrega las
enableOverloadRetargetingmaxAdaptiveRetriesopciones URI y. Estas opciones controlan el comportamiento de reintento cuando el controlador encuentra servidores sobrecargados. Para obtener más información, consulte Opciones de selección y detección de servidores.
Para obtener más información sobre los cambios en esta versión, consulte las notas de la versión v2.3 en GitHub.
Novedades en 2.2
El lanzamiento de la librería PHP v2.2 incluye las siguientes funcionalidades, mejoras y correcciones:
Añade soporte para el operador de la pipeline de agregación
$createObjectIdspara generar ObjectIDs aleatorios.Agrega soporte con los acumuladores de agregación
$concatArraysy$setUnion.Agrega soporte para la etapa
$scoreFusiondel pipeline.Permite pasar una instancia de
Pipelineen el métodoMongoDB\Collection::findOneAndUpdate()al usar actualizaciones de la pipeline.Agrega el nuevo método
MongoDB\Model\CollectionInfo::isView()a la claseMongoDB\Model\CollectionInfo.Se agrega el método
MongoDB\Database::getGridFSBucket()para mantener la coherencia conMongoDB\Database::getCollection().
Novedades en 2.1
Importante
cambio disruptivo
La versión2.1 de la librería PHP introduce los siguientes cambios disruptivos:
Deja de brindar soporte para el servidor MongoDB 4.0. La versión mínima compatible de MongoDB Server es 4.2.
El lanzamiento de la librería PHP v2.1 incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega compatibilidad con PHP 8.5.
Agrega una API de escritura masiva de cliente para realizar operaciones de escritura en múltiples bases de datos y colecciones en la misma llamada. Para obtener más información sobre esta funcionalidad, consulta la sección Escritura masiva del cliente de la guía de Operaciones de escritura masiva.
Novedades en 2.0
Importante
cambio disruptivo
La versión2.0 de la librería PHP introduce los siguientes cambios disruptivos:
Los siguientes métodos devuelven
voiden vez de la respuesta de comando bruta:MongoDB\Client:dropDatabase()MongoDB\Collection:drop(),dropIndex(),dropIndexes(),dropSearchIndex(),rename()MongoDB\Database:createCollection(),drop(),dropCollection(),renameCollection()
Para obtener más información sobre los cambios disruptivos de este lanzamiento, consulta la sección Cambios disruptivos de la versión 2.0 en la guía Actualizar versiones de librerías.
La versión v2.0 de la librería PHP incluye los siguientes cambios y eliminaciones de API:
Agrega los siguientes métodos:
MongoDB\Client::getDatabase()Alias paraMongoDB\Client::selectDatabase()MongoDB\Client::getCollection()Alias paraMongoDB\Client::selectCollection()MongoDB\Database::getCollection()Alias paraMongoDB\Database::selectCollection()
Los métodos
Client::selectCollection(),Client::selectDatabase()yDatabase::selectCollection()quedarán obsoletos y serán reemplazados por estos nuevos métodos en una futura versión de driver, por lo tanto, considera cambiar su uso en tu aplicación.Modifica los métodos
MongoDB\Database::aggregate()yMongoDB\Collection::aggregate()para que puedan aceptar una instancia dePipelinecomo parámetro$pipeline. Para ver ejemplos que utilicen esta construcción, consulta la sección Creador de agregación de la guía de agregación.Reemplaza los indicios de tipo
CursorporCursorInterfacepara mejorar la extensibilidad y compatibilidad.Remueve los campos desaprobados en los tipos de GridFS.
La librería no calcula el campo
md5cuando se carga un archivo en GridFS. Si su aplicación requiere un resumen de archivos, debe implementar este proceso fuera de GridFS y almacenar los valores en metadatos.Los campos
contentTypeyaliasesya no se almacenan en la colecciónfilesde GridFS. Si tu aplicación requiere esta información, debes almacenarla en los metadatos. Para obtener más información sobre GridFS, consulta la guía Almacenar archivos grandes.
Se remueven las siguientes opciones obsoletas para las operaciones de búsqueda:
maxScanmodifiersoplogReplaysnapshot
Para obtener información sobre las opciones admitidas para las operaciones de búsqueda, consulta la
MongoDB\Collection::find()oMongoDB\Collection::findOne()documentación de la API.Remueve el método obsoleto
IndexInfo::isGeoHaystack().Se remueven las opciones obsoletas
autoIndexIdyflagspara el métodoMongoDB\Database::createCollection().Elimina el soporte para la funcionalidad map-reduce al eliminar los siguientes métodos y tipos obsoletos:
MongoDB\Collection::mapReduce()MongoDB\MapReduceResult
Puedes reescribir operaciones de map-reduce usando etapas del pipeline de agregación como
$groupy$merge. Para obtener más información, consulta map-reduce to pipeline de agregación en el Manual del MongoDB Server.Remueve las siguientes implementaciones de
Iterator:MongoDB\Model\CollectionInfoIteratorMongoDB\Model\DatabaseInfoIteratorMongoDB\Model\IndexInfoIterator
Los métodos
MongoDB\Client::listDatabases(),MongoDB\Database::listCollections()yMongoDB\Collection::listIndexes()devuelven una instancia general deIteratorque proporciona los resultados correspondientes.
Novedades en 1.21
El lanzamiento de la librería PHP v1.21 incluye las siguientes funcionalidades, mejoras y correcciones:
Presenta el Aggregation Builder, una API para crear pipelines de agregación de manera más segura en cuanto a tipos. Para obtener más información y ver ejemplos, consulte la sección Constructor de Agregación de la Guía de Agregación.
Agrega los siguientes métodos:
MongoDB\Client::getDatabase()Alias paraMongoDB\Client::selectDatabase()MongoDB\Database::getCollection()Alias paraMongoDB\Database::selectCollection()MongoDB\Database::getCollection()Alias paraMongoDB\Database::selectCollection()
Los métodos
Client::selectCollection(),Client::selectDatabase()yDatabase::selectCollection()quedarán obsoletos y serán reemplazados por estos nuevos métodos en una futura versión de driver, por lo tanto, considera cambiar su uso en tu aplicación.Agrega argumentos con nombre para
SearchStage,VectorSearchStageySearchMetaStageclases constructoras. Este cambio permite escribir consultas de MongoDB Search y MongoDB Vector Search de una manera más segura en cuanto a tipos y organizada. Para saber más, consulta las guías Ejecutar una MongoDB Search Query y Ejecutar una MongoDB Vector Search Query.Depreca la opción
flags, usada para el motor de almacenamiento MMAPv1 obsoleto. Esta opción se eliminará en la librería de PHP v2.0.Agrega una opción para ordenar a los métodos
MongoDB\Collection::updateOne()yMongoDB\Collection::replaceOne(). Este cambio también te permite definir un orden de clasificación como opción al realizar operaciones de actualización y reemplazo en una operación masiva.Agrega la opción
builderEncodera los siguientes métodos:
Para obtener más información sobre los cambios en esta versión, consulta las v1.21 notas de versión en GitHub.
Novedades en 1.20
Importante
MongoDB Server v3.6 Fin de vida
Se eliminó la compatibilidad con MongoDB Server v3.6 en esta versión de la librería.
Agrega soporte para MongoDB Server v8.0.
Agrega soporte para consultas de rango encriptadas consultables (Queryable Encryption). Para utilizar esta funcionalidad, tu aplicación debe conectarse a MongoDB Server 8.0 o posterior. Para obtener más información sobre las consultas de rango QE, consulta Queryable Encryption en el manual de MongoDB Server.
Cuando una operación de un clúster no tiene éxito, la librería evita seleccionar el mismo servidor de
mongospara los intentos de reintento de la operación si hay otros servidores demongosdisponibles.Cuando crea una clave de datos KMIP, ahora puede especificar la opción
delegated. Si esta opción se configura entrue, el proveedor KMIP realiza el cifrado y descifrado de la clave de datos localmente, asegurando que la clave de cifrado nunca abandone el servidor KMIP.Agrega la opción
typeen las especificaciones del índice de búsqueda para los métodosMongoDB\Collection::createIndex()yMongoDB\Collection::createSearchIndexes(). Este cambio permite crear índices de MongoDB Vector Search de forma programática. Para aprender más y ver ejemplos, consulta la guía Índices de búsqueda de MongoDB.
Para obtener más información sobre los cambios en esta versión, consulta las v1.20 notas de versión en GitHub.
Novedades en 1.19
Esta versión de la librería PHP no contiene cambios significativos y se añadió para mantener la paridad de versiones con la extensión de PHP.
Novedades en 1.18
Agrega una nueva API de GridFS para facilitar el trabajo con archivos utilizando las funciones existentes del sistema de archivos de PHP. El método
MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()puede utilizarse para registrar un alias global para un `GridFS bucket`. Después de hacer esto, los archivos dentro de ese bucket pueden accederse utilizando solo un URI de archivo (por ejemplo, "gridfs://mybucket/hello.txt"). Se puede encontrar una demostración de esta API en el script de ejemplo gridfs_stream_wrapper.php.Agrega los métodos
MongoDB\Client::addSubscriber()yMongoDB\Client::removeSubscriber()a la claseMongoDB\Clientpara facilitar la registración de clases de supervisión circunscritas al objeto subyacenteMongoDB\Driver\Manager.
Para aprender más sobre esta versión, consulta las Notas de la versión v1.18 en GitHub.
Novedades en 1.17
Introduce una nueva API "codec" para convertir BSON hacia y desde objetos PHP. Se puede encontrar más información sobre esta funcionalidad en el tutorial de Codecs.
Añade
MongoDB\add_logger()yMongoDB\remove_logger()funciones a la librería. Estas funciones permiten a las aplicaciones registrar un Logger PSR-3 para recibir los mensajes de registro emitidos por el controlador. Anteriormente, los registros sólo estaban disponibles a través de la configuración mongodb.debugINIde la extensión.Introduce los nuevos métodos
MongoDB\Collectionpara crear y gestionar índices de MongoDB Search. Los índices de búsqueda de MongoDB Search se pueden consultar utilizando la etapa de pipeline de agregación$search, la cual es compatible con todas las versiones de la librería. Para obtener más información sobre los índices de MongoDB Search y los detalles de la etapa de agregación$search, consulta la documentación de Índices de MongoDB Search y $search.Actualiza el requisito de extensión de
mongodba 1.17.0. La compatibilidad con PHP 7.2 y 7.3 se ha eliminado y la librería ahora requiere PHP 7.4 o una versión más reciente.
Para aprender más sobre esta versión, consulta las Notas de la versión v1.17 en GitHub.