Registro de cambios

A las clases/funciones/métodos de esta extensión se han realizado los siguientes cambios.

Controlador de MongoDB para 1.5.0

Tiene soporte para todas las nuevas características de MongoDB 2.6, incluyendo:

  • Aggregate ahora puede devolver un cursor
  • Las tuberías de agregación ahora se pueden explicar
  • Posibilidad de establecer maxTimeMS para comandos y consultas
  • Soporte transparente para la nueva API de escritura de MongoDB basada en comandos
  • Nuevas clases MongoWriteBatch (usando la nueva API de escritura de MongoDB)
  • Soporte para las características de MongoDB Enterprise (p.ej. Kerberos, LDAP, X509)
  • Opción para mejorar la latencia del servidor para lecturas de secundarios (secondaryAcceptableLatencyMS)

Con esta versión, alguna funcionalidad del controlador que estaba anteriormente documentada como obsoleta ahora emitirá formalmente avisos de obsolescencia. Esto incluye:

  • Instanciar la clase Mongo
  • Invocar a MongoCursor::slaveOkay()
  • Las opciones "wtimeout" y "safe" para operaciones de escritura de MongoCollection
  • Manipular propiedades públicas en clases del núcleo (como $collection->w)

Nota:

No se ha eliminado características anteriormente obsoletas.

Cambios en el comportamiento:

  • Ahora, establecer el ajuste INI mongo.native_long emite un error en plataformas de 32 bit, y es true como valor predeterminado en platarformas de 64 bit.

Controlador de MongoDB para 1.4.0

La serie 1.4 introdujo cambios fundamentales en cómo se crean las conexiones a servidores de MongoDB. El controlados ahora utiliza flujos nativos de PHP, aplicándose así todas las opciones de flujos de PHP. Además, se añadió soporte experimental para Contexto de Flujos.

La serie 1.4.x también añadió soporte para MongoDB 2.4.x.

Sin embargo, las mejoras más importantes se ocupan del manejo de conjuntos de réplica, especialmente de los nodos que expiran el tiempo límite y de nodos que son inalcanzables por varias razones. A parte de las mejoras al manejo de conjuntos de réplica, esta versión aborda problemas con preferencias de lectura a través de nodos de mongos. También añade soporte para conexiones habilitadas con SSL, así como para las opciones de string de conexión journal y fsync.

Controlador de MongoDB para 1.3.0

La serie 1.3 introdujo varios cambios mayores a la extensión, tales como reescribir completamente el manejo de conexiones (y eliminar el mecanismo de agrupamiento), dar soporte para ReadPreferences y cambiar los WriteConcerns predeterminados para que sean reconocidos mediante la introducción de la nueva clase MongoClient, que sirve como una clase sustituta para la ahora obsoleta Mongo.

El controlador ahora también admite la conexión a múltiples instancias de mongos (el enrutador Mongo Shard) para el equilibrado de carga.

Otras mejoras incluyen la identificación para una depuración más sencilla de manejo de conexiones con MongoLog, y el soporte para el » Framework Aggregation mediante el método MongoCollection::aggregate().

Cambios en los métodos existentes

La siguiente lista muestra todas las mejoras a los métodos existentes desde su implantación.

VersionFunctionDescription
1.7.0MongoDB::executeEste método ha sido declarado obsoleto como resultado de estar también obsoleta en MongoDB 3.0+ la orden eval.
1.6.0MongoCollection::countEl segundo parámetro ahora es el array de opciones options. Pasar limit y skip como segundo y tercer parámetros, respectivamente, ahora está obsoleto.
 MongoDB::getCollectionNamesSe cambió el primer parámetro para que sea un array de opciones. Antes de la versión 1.6.0, el primer parámetro era un booleano que indicaba la opción "includeSystemCollections".
 MongoDB::listCollectionsSe cambió el primer parámetro para que sea un array de opciones. Antes de la versión 1.6.0, el primer parámetro era un booleano que indicaba la opción "includeSystemCollections".
1.5.0log_cmd_deleteSolamente disponible al conectarse a MongoDB 2.6.0+
 log_cmd_insertSolamente disponible al conectarse a MongoDB 2.6.0+
 log_cmd_updateSolamente disponible al conectarse a MongoDB 2.6.0+
 log_write_batchSolamente disponible al conectarse a MongoDB 2.6.0+
 MongoBinData::__constructSe cambió el valor predeterminado de 2 (MongoBinData::BYTE_ARRAY) a 0 (MongoBinData::GENERIC).
 MongoClient::__constructSe añadió "authSource".
 MongoClient::__constructSe añadieron "authMechanism", "gssapiServiceName", y "secondaryAcceptableLatencyMS".
 MongoCollection::aggregateSe añadió el parámetro opcional options
 MongoCollection::batchInsertSe añadió la opción "wTimeoutMS", la cual remplaza a "wtimeout". Emite un error de nivel E_DEPRECATED cuando se usa "wtimeout". Se añadió la opción "socketTimeoutMS", la cual remplza a "timeout". Emite un error de nivel E_DEPRECATED cuando se usa "timeout". Emite un error de nivel E_DEPRECATED al usar "safe".
 MongoCollection::ensureIndexSe renombró la opción "wtimeout" a "wTimeoutMS". Emite un error de nivel E_DEPRECATED cuando se usa "wtimeout". Se renombró la opción "wtimeout" a "socketTimeoutMS". Emite un error de nivel E_DEPRECATED cuando se usa "timeout". Emite un error de nivel E_DEPRECATED cuando se usa "safe".
 MongoCollection::findOneSe añadió el parámetro opcional options.
 MongoCollection::groupSe añadió la opción "maxTimeMS".
 MongoCollection::insertSe añadió la opción "wTimeoutMS", la cual remplaza a "wtimeout". Emite un error de nivel E_DEPRECATED cuando se usa "wtimeout". Se añadió la opción "socketTimeoutMS", la cual remplza a "timeout". Emite un error de nivel E_DEPRECATED cuando se usa "timeout". Emite un error de nivel E_DEPRECATED al usar "safe".
 MongoCollection::removese añadió la opción "wTimeoutMS", la cual remplaza a "wtimeout". Emite un error de nivel E_DEPRECATED cuando se usa "wtimeout". Se añadió la opción "socketTimeoutMS", la cual remplza a "timeout". Emite un error de nivel E_DEPRECATED cuando se usa "timeout". Emite un error de nivel E_DEPRECATED al usar "safe".
 MongoCollection::saveSe añadió la opción "wTimeoutMS", la cual reemplaza a "wtimeout". Emite un error E_DEPRECATED al utilizar "wtimeout". Se añadió la opción "socketTimeoutMS", la cual reemplaza a "timeout". Emite un error E_DEPRECATED al utilizar "wtimeout". Emite un error E_DEPRECATED al utilizar "safe".
 MongoCollection::toIndexStringEste método está obsoleto.
 MongoCollection::updatese añadió la opción "wTimeoutMS", la cual remplaza a "wtimeout". Emite un error de nivel E_DEPRECATED cuando se usa "wtimeout". Se añadió la opción "socketTimeoutMS", la cual remplza a "timeout". Emite un error de nivel E_DEPRECATED cuando se usa "timeout". Emite un error de nivel E_DEPRECATED al usar "safe".
 MongoCursor::slaveOkayEste método está obsoleto en favor de MongoCursor::setReadPreference y .
 MongoDB::commandSe renombró la opción "timeout" a "socketTimeoutMS". Emite un error E_DEPRECATED al utilizar "timeout". Se añadió el parámetro por referencia hash.
1.4.5MongoCursor::batchSizeAntes de la versión 1.4.5, este método lanzaba una MongoCursorException si el cursor ya había comenzado a iterar.
1.4.0MongoClient::__constructSe añadió la opción "ssl" y el soporte para conexiones sobre SSL. Se añadió la opción "wTimeoutMS", que remplaza a "wTimeout". Emite un error de nivel E_DEPRECATED al usar "slaveOkay" o "timeout".
 MongoCursor::hintEl argumento index ahora admite nombres de índices como valores de tipo string. En versiones anteriores a la 1.4.0, solamente eran aceptados valores de array u objeto.
 MongoCursor::setFlagSe añadió el soporte para la bandera 3 (OPLOG_REPLAY). Las versiones anteriorea a la 1.4.0 lanzarán una advertencia diciendo que la bandera no está soportada.
 MongoDB::createCollectionEn versiones anteriores a la 1.4.0, las opciones eran todas argumentos del método. La sinopsis de la función en esas versiones antiguas es: public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 El significado de las opciones es el mismo que el descrito bajo el argumento options de arriba.
 MongoId::__constructSe lanza una excepción al proporcionar un string no válido
1.3.4MongoClient::__constructSe añadieron las opciones "connectTimeoutMS" y "socketTimeoutMS".
 MongoCollection::batchInsertSe añadió la opción "wtimeout".
 MongoCollection::ensureIndexSe añadió la opción "wtimeout".
 MongoCollection::insertSe añadió la opción "wtimeout".
 MongoCollection::removeSe añadió la opción "wtimeout".
 MongoCollection::updateSe añadió la opción "wtimeout".
1.3.3MongoClient::getReadPreferenceEl valor devuelto ha cambiado para ser consistente con MongoClient::setReadPreference. El valor type cambia de ser un número a un string, type_string fue eliminado, y tagsets ahora expresa etiquetas como pares clave/valor en lugar de string delimitados por dos puntos.
 MongoCollection::getReadPreferenceEl valor devuelto ha cambiado para ser consistente con MongoCollection::setReadPreference. El valor type cambia de ser un número a un string, type_string fue eliminado, y tagsets ahora expresa las etiquetas como pares calve/valor en lugar de cadenas delimitadas por dos puntos.
 MongoDB::getReadPreferenceEl valor devuelto ha cambiado para ser consistente con MongoDB::setReadPreference. El valor type cambia de ser un número a un string, type_string fue eliminado, y tagsets ahora expresa etiquetas como pares clave/valor en lugar de cadenas delimitadas por dos puntos.
1.3.0MongoClient::closeEl parámetro connection de esta función fue añadido en la versión 1.3.0. Anteriormente, solamente se podía cerra la conexión de escritura mediante este método.
 MongoClient::__constructSe añadieron las opciones "readPreference", "readPreferenceTags", "w" y "wTimeout".
 MongoCollection::batchInsertSe añadió la opción "w".
 MongoCollection::ensureIndexSe añadió la opción "w". El parámetro options ya no acepta un booleano para identificar un índice único. En su lugar, ahora debe hacerse con array('unique' => true).
 MongoCollection::insertSe añadió la opción "w". El parámetro options ya no acepta un booleano para indicar una escritura aceptada. En su lugar, ahora esto tiene que realizarse con array('w' => 1) (El comportamiento predeterminado de MongoClient).
 MongoCollection::removeSe añadió la opción "w". El parámetro options ya no acepta un valor booleano que indique "justOne". En su lugar, ahora se debe hacer con array('justOne' => true).
 MongoCollection::updateSe añadió la opción "w". El parámetro options ya no acepta un valor booleano para indicar un 'upsert'. En su lugar, esto ahora se tiene que hacer con array('upsert' => true).
 MongoDB::listCollectionsSe añadió el parámetro includeSystemCollections.
 MongoGridFSCursor::keyEl _id del documento es devuelto como un valor de tipo string, ya que la clave debería ser única. Antes de la versión 1.3.0, se devolvía filename.
1.2.11Mongo::getPoolSizeEmite un error de nivel E_DEPRECATED al usarla.
 Mongo::getSlaveEmite un error de nivel E_DEPRECATED al utilizarlo.
 Mongo::getSlaveOkayEmite un error de nivel E_DEPRECATED cuando se usa.
 Mongo::poolDebugEmite un error de nivel E_DEPRECATED al utilizarlo.
 Mongo::setSlaveOkayEmite un error de nivel E_DEPRECATED cuando se usa.
 Mongo::switchSlaveEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoBinData::__constructEmite un error de nivel E_DEPRECATED cuando no se utiliza el segundo argumento. El valor predeterminado de type podría cambiar en un futuro próximo.
 MongoCollection::ensureIndexEmite un error de nivel E_DEPRECATED cuando options es de tipo scalar.
 MongoCollection::getSlaveOkayEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoCollection::groupEmite un error de nivel E_DEPRECATED cuando options es de tipo scalar.
 MongoCollection::removeEmite un error de nivel E_DEPRECATED cuando options es de tipo scalar.
 MongoCollection::setSlaveOkayEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoCollection::updateEmite E_DEPRECATED cuando options es de tipo scalar.
 MongoCursor::doQueryEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoDB::authenticateEmite un error de nivel E_DEPRECATED cuando se usa. Por favor, pase los detalles de autenticación al constructor.
 MongoDB::forceErrorEmite E_DEPRECATED cuando es usada.
 MongoDB::getSlaveOkayEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoDB::prevErrorEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoDB::resetErrorEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoDB::setSlaveOkayEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoPool::getSizeEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoPool::infoEmite un error de nivel E_DEPRECATED cuando se usa.
 MongoPool::setSizeEmite un error de nivel E_DEPRECATED cuando se usa.
1.2.10MongoClient::getHostsSe añadió el soporte para hosts que no pertenecen a un conjunto de réplica. Los elementos del array devuelto ahora también incluyen hostname y port.
1.2.7MongoCollection::batchInsertSe añadió la opción "continueOnError".
1.2.5MongoGridFS::storeUploadSe cambió el segundo parámetro a un array de metadatos. Antes de la versión 1.2.5, el segundo parámetro era un string opcional que reemplazaba el nombre de fichero.
1.2.0MongoClient::closeAntes de la versión 1.2.0, el controlador no utilizaba conexiones persistentes de forma predeterminada, por lo que todas las conexiones se cerraban tan pronto como una conexión de MongoDB estuviera fuera de ámbito. Desde la versión 1.2.0, este ya no es el caso, y es una mala idea invocar a close, ya que se podría terminar por sobrecargar el servidor con conexiones bajo una alta carga.
 MongoClient::__constructSe añadieron las opciones "username" y "password". Eliminada la opción "persist", ya que ahora todas las conexiones son persistentes. Aún se puede usar, pero no afecta a nada. "persist" Si la conexión debiera ser persistente. Si se establece, la conexión será persistente. La representación de tipo string del valor se usa como un ID para la conexión, por lo que dos instancias de MongoClient que hayan sido inicializadas con array("persist" => "foobar") compartirán la misma conexión a la base de datos, mientras que una instancia inicializada con array("persist" => "barbaz") usará una conexión diferente a la base de datos. La opción "replicaSet" ahora toma un string, no un booleano.
 MongoCollection::ensureIndexSe añadió la opción "timeout".
 MongoCollection::insertSe añadió el parámetro "timeout".
 MongoCollection::removeSe añadió la opción "timeout".
 MongoCollection::saveAñadida la opción "timeout".
 MongoCollection::updateSe añadió la opción "timeout".
 MongoDB::commandSe añadió el parámetro options con una única opción: timeout.
1.1.0MongoCursor::infoSe añadieron varios campos, incluyendo id (el id del cursor), at (la cuenta del contador de cual es el documento actual), numReturned (el número devuelto por el servidor del lote actual), y server (el servidor al que se le envió la consulta; útil junto con .
1.0.11MongoCollection::ensureIndexLa opción "safe" desencadenará una tolerancia a fallos en el primario, si fuera necesario. Se lanzará una MongoException si el nombre del índice (generado o establecido) es mayor que 128 bytes.
 MongoCollection::insertSe desconecta en errores "not master" si "safe" está establecido.
 MongoCollection::removeSe desconcecta cuando ocurren errores "not master" si "safe" está establecido.
 MongoCollection::saveSe desconecta en errores "not master" si "safe" está establecido.
 MongoCollection::updateSe desconecta en errores "not master" si "safe" está establecido.
1.0.10MongoCursor::infoSe añadió el campo started_iterating, un booleano que indica si el cursor es preconsulta o postconsulta.
1.0.9MongoClient::__constructSe añadió la opción "replicaSet".
 MongoCollection::batchInsertSe añadió la capacidad de pasar números enteros a la opción "safe", que anteriormente sólo aceptaba booleanos. Se añadió la opción "fsync".
 MongoCollection::insertAñadida la capacidad de pasar enteros a la opción "safe", la cual anteriormente únicamente aceptaba booleanos. Añadida la opción "fsync". Cambiado el tipo devuelto por un array que contiene información si se utiliza la opción "safe". De otro modo, se devuelve un booleano como antes.
 MongoCollection::removeSe añadió la capacidad de pasar números enteros a la opción "safe", la cual anteriomente sólo aceptaba valores booleanos. Se añadío la opción "fsync". Es tipo devuelto se cambio para que fuera un array que contuviera la información del error si se usaba la opción "safe". De otro modo, se devolvía un valor booleano como antes.
 MongoCollection::saveAñadida la opción "fsync".
 MongoCollection::updateAñadida la capacidad de pasar enteros a la opción "safe", la cual anteriormente únicamente aceptaba booleanos. Añadida la opción "fsync". Cambiado el tipo devuelto por un array que contiene información si se utiliza la opción "safe". De otro modo, se devuelve un booleano como antes.
1.0.7MongoCollection::countSe añadieron los parámetros limit y skip como segundo y tercer parámetros, respectivamente.
1.0.5MongoCollection::batchInsertSe añadió el parámetro options.
 MongoCollection::ensureIndexSe añadió la opción "name" para sobrescribir la creación del nombre del índice.
 MongoCollection::removeCambiado el segundo parámetro a un array de opciones. Antes de 1.0.5, el segundo parámetro era un booleano indicando la opción "safe".
 MongoCollection::saveAñadido el parámetro options.
 MongoCollection::updateSe añadió la opción "safe".
1.0.2MongoClient::__constructSe cambió el constructor para que tome un array de opciones. Antes de la versión 1.0.2, el constructor tomaba los siguientes parámetros: server El nombre del servidor. connect Parámetro booleano opcional que especifica si el constructor debe conectarse a la base de datos antes de devolver. El valor predeterminado es TRUE. persistent Si la conexión debería se persistente. paired Si la conexión debería estar emparejada.
 MongoCollection::ensureIndexSe cambió el parámetro options de booleano a array. Antes de la versión 1.0.2, el segundo parámetro era un valor booleano opcional que especificaba si era o no un índice único.
 MongoCollection::insertCambiado el segundo parámetro a un array de opciones. Antes de la versión 1.0.2, el segundo parámetro era un booleano indicando la opción "safe".
1.0.1MongoCollection::insertLanza una MongoCursorException si la opción "safe" está establecida y la inserción falla.
 MongoCollection::updateCambiado el parámetro "opciones" de un booleano a un array. Antes de la versión 1.0.1, el segundo parámetro era valor booleano opcional especificando un upsert.