Conozca las nuevas funcionalidades, mejoras y correcciones introducidas en las siguientes versiones de la MongoDB PHP librería:
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/la
$createObjectIdsOperador de canalización de agregación para generar ObjectID aleatorios.Agrega soporte con los acumuladores de agregación
$concatArraysy$setUnion.Agrega soporte para la etapa
$scoreFusiondel pipeline.Permite pasar una instancia
Pipelineen elMongoDB\Collection::findOneAndUpdate()método al utilizar actualizaciones de canalización.Agrega el nuevo método
MongoDB\Model\CollectionInfo::isView()a la claseMongoDB\Model\CollectionInfo.Agrega el
MongoDB\Database::getGridFSBucket()método para mantener laMongoDB\Database::getCollection()coherencia con.
Novedades en 2.1
Importante
Cambios radicales
La versión v2.1 de la biblioteca PHP introduce los siguientes cambios importantes:
Se elimina la compatibilidad con MongoDB Server 4.0. La versión mínima compatible con 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
Cambios radicales
La versión v2.0 de la biblioteca PHP introduce los siguientes cambios importantes:
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.Elimina campos obsoletos en los tipos 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 la compatibilidad con la funcionalidad de reducción de mapas eliminando 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.Añade una opción de ordenación a los métodos y. Este cambio también permite configurar un orden de ordenación al realizar operaciones de actualización y reemplazo en una operación
MongoDB\Collection::updateOne()MongoDB\Collection::replaceOne()masiva.Agrega la opción
builderEncodera los siguientes métodos:
Para obtener más información sobre los cambios en esta versión, consulte las notas de la versión v1.21 en GitHub.
Novedades en 1.20
Importante
Fin de vida útil del servidor MongoDB v3.6
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 clúster fragmentado no es exitosa, la biblioteca evita seleccionar el mismo servidor
mongospara los intentos de reintento de la operación si hay otros servidoresmongosdisponibles.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.Se añade la
typeopción a las especificaciones de índices de búsqueda para los métodos y. Este cambio permite crear índices de búsqueda vectorial deMongoDB\Collection::createIndex()MongoDB mediante programación. Para obtener más información y verMongoDB\Collection::createSearchIndexes()ejemplos, consulte la guía de í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
Añade una nueva API de GridFS para facilitar el trabajo con archivos mediante las funciones del sistema de archivos de PHP. El
MongoDB\GridFS\Bucket::registerGlobalStreamWrapperAlias()método permite registrar un alias global para un bucket de GridFS. Tras ello, se puede acceder a los archivos de ese bucket utilizando únicamente una URI (p. ej., "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 obtener más información sobre esta versión, consulte las 1.18 Notas de la versión v 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 obtener más información sobre esta versión, consulte las 1.17 Notas de la versión v en GitHub.