Mongo
PHP Manual

Registro de cambios

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

MongoDB PHP Driver 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.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 "wTimeoutMS" como sustituto de "wTimeout".
 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.
1.3.4MongoClient::__constructSe añadieron las opciones "connectTimeoutMS" y "socketTimeoutMS".
1.3.3MongoClient::getReadPreferenceEl valor devuelto ha cambiado para ser consistente con MongoClient::setReadPreference. El valor type se cambió de 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.
 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::ensureIndexEl parámetro options ya no acepta un booleano para identificar un índice único. En su lugar, ahora debe hacerse con array('unique' => true).
 MongoCollection::insertEl parámetro options ya no acepta un booleano para indicar una escritura aceptada. En su lugar, ahora esto tiene que hacerse con array('w' => 1) (El comportamiento predeterminado de MongoClient).
 MongoCollection::removeEl parámetro options ya no solo acepta un booleano que indique "soloUno" "justOne". En su lugar, ahora se debe hacer con array('justOne' => true).
 MongoCollection::updateEl 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::storeUploadCambiado el segundo parámetro a un array de metadatos. Antes de la versión 1.2.5, el segundo parámetro fue un string opcional reemplazando el nombre de archivo.
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 cadena 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::commandAñadido 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 capacidad de pasar enteros a la opción "safe", la cual anteriormente únicamente aceptaba booleanos. Añ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.
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::insertCambiado 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::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::ensureIndexCambiado 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.
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.

Mongo
PHP Manual