A las clases/funciones/métodos de esta extensión se han realizado los siguientes cambios.
Tiene soporte para todas las nuevas características de MongoDB 2.6, incluyendo:
Con esta versión, alguna funcionalidad del controlador que estaba anteriormente documentada como obsoleta ahora emitirá formalmente avisos de obsolescencia. Esto incluye:
Nota:
No se ha eliminado características anteriormente obsoletas.
Cambios en el comportamiento:
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.
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().
La siguiente lista muestra todas las mejoras a los métodos existentes desde su implantación.
Version | Function | Description |
---|---|---|
1.7.0 | MongoDB::execute | Este método ha sido declarado obsoleto como resultado de estar también obsoleta en MongoDB 3.0+ la orden eval. |
1.6.0 | MongoCollection::count | El 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::getCollectionNames | Se 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::listCollections | Se 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.0 | log_cmd_delete | Solamente disponible al conectarse a MongoDB 2.6.0+ |
log_cmd_insert | Solamente disponible al conectarse a MongoDB 2.6.0+ | |
log_cmd_update | Solamente disponible al conectarse a MongoDB 2.6.0+ | |
log_write_batch | Solamente disponible al conectarse a MongoDB 2.6.0+ | |
MongoBinData::__construct | Se cambió el valor predeterminado de 2 (MongoBinData::BYTE_ARRAY) a 0 (MongoBinData::GENERIC). | |
MongoClient::__construct | Se añadió "authSource". | |
MongoClient::__construct | Se añadieron "authMechanism", "gssapiServiceName", y "secondaryAcceptableLatencyMS". | |
MongoCollection::aggregate | Se añadió el parámetro opcional options | |
MongoCollection::batchInsert | Se 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::ensureIndex | Se 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::findOne | Se añadió el parámetro opcional options. | |
MongoCollection::group | Se añadió la opción "maxTimeMS". | |
MongoCollection::insert | Se 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::remove | se 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::save | Se 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::toIndexString | Este método está obsoleto. | |
MongoCollection::update | se 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::slaveOkay | Este método está obsoleto en favor de MongoCursor::setReadPreference y . | |
MongoDB::command | Se 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.5 | MongoCursor::batchSize | Antes de la versión 1.4.5, este método lanzaba una MongoCursorException si el cursor ya había comenzado a iterar. |
1.4.0 | MongoClient::__construct | Se 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::hint | El 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::setFlag | Se 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::createCollection | En 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::__construct | Se lanza una excepción al proporcionar un string no válido | |
1.3.4 | MongoClient::__construct | Se añadieron las opciones "connectTimeoutMS" y "socketTimeoutMS". |
MongoCollection::batchInsert | Se añadió la opción "wtimeout". | |
MongoCollection::ensureIndex | Se añadió la opción "wtimeout". | |
MongoCollection::insert | Se añadió la opción "wtimeout". | |
MongoCollection::remove | Se añadió la opción "wtimeout". | |
MongoCollection::update | Se añadió la opción "wtimeout". | |
1.3.3 | MongoClient::getReadPreference | El 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::getReadPreference | El 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::getReadPreference | El 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.0 | MongoClient::close | El 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::__construct | Se añadieron las opciones "readPreference", "readPreferenceTags", "w" y "wTimeout". | |
MongoCollection::batchInsert | Se añadió la opción "w". | |
MongoCollection::ensureIndex | Se 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::insert | Se 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::remove | Se 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::update | Se 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::listCollections | Se añadió el parámetro includeSystemCollections. | |
MongoGridFSCursor::key | El _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.11 | Mongo::getPoolSize | Emite un error de nivel E_DEPRECATED al usarla. |
Mongo::getSlave | Emite un error de nivel E_DEPRECATED al utilizarlo. | |
Mongo::getSlaveOkay | Emite un error de nivel E_DEPRECATED cuando se usa. | |
Mongo::poolDebug | Emite un error de nivel E_DEPRECATED al utilizarlo. | |
Mongo::setSlaveOkay | Emite un error de nivel E_DEPRECATED cuando se usa. | |
Mongo::switchSlave | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoBinData::__construct | Emite 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::ensureIndex | Emite un error de nivel E_DEPRECATED cuando options es de tipo scalar. | |
MongoCollection::getSlaveOkay | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoCollection::group | Emite un error de nivel E_DEPRECATED cuando options es de tipo scalar. | |
MongoCollection::remove | Emite un error de nivel E_DEPRECATED cuando options es de tipo scalar. | |
MongoCollection::setSlaveOkay | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoCollection::update | Emite E_DEPRECATED cuando options es de tipo scalar. | |
MongoCursor::doQuery | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoDB::authenticate | Emite un error de nivel E_DEPRECATED cuando se usa. Por favor, pase los detalles de autenticación al constructor. | |
MongoDB::forceError | Emite E_DEPRECATED cuando es usada. | |
MongoDB::getSlaveOkay | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoDB::prevError | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoDB::resetError | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoDB::setSlaveOkay | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoPool::getSize | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoPool::info | Emite un error de nivel E_DEPRECATED cuando se usa. | |
MongoPool::setSize | Emite un error de nivel E_DEPRECATED cuando se usa. | |
1.2.10 | MongoClient::getHosts | Se 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.7 | MongoCollection::batchInsert | Se añadió la opción "continueOnError". |
1.2.5 | MongoGridFS::storeUpload | Se 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.0 | MongoClient::close | Antes 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::__construct | Se 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::ensureIndex | Se añadió la opción "timeout". | |
MongoCollection::insert | Se añadió el parámetro "timeout". | |
MongoCollection::remove | Se añadió la opción "timeout". | |
MongoCollection::save | Añadida la opción "timeout". | |
MongoCollection::update | Se añadió la opción "timeout". | |
MongoDB::command | Se añadió el parámetro options con una única opción: timeout. | |
1.1.0 | MongoCursor::info | Se 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.11 | MongoCollection::ensureIndex | La 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::insert | Se desconecta en errores "not master" si "safe" está establecido. | |
MongoCollection::remove | Se desconcecta cuando ocurren errores "not master" si "safe" está establecido. | |
MongoCollection::save | Se desconecta en errores "not master" si "safe" está establecido. | |
MongoCollection::update | Se desconecta en errores "not master" si "safe" está establecido. | |
1.0.10 | MongoCursor::info | Se añadió el campo started_iterating, un booleano que indica si el cursor es preconsulta o postconsulta. |
1.0.9 | MongoClient::__construct | Se añadió la opción "replicaSet". |
MongoCollection::batchInsert | Se 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::insert | Añ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::remove | Se 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::save | Añadida la opción "fsync". | |
MongoCollection::update | Añ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.7 | MongoCollection::count | Se añadieron los parámetros limit y skip como segundo y tercer parámetros, respectivamente. |
1.0.5 | MongoCollection::batchInsert | Se añadió el parámetro options. |
MongoCollection::ensureIndex | Se añadió la opción "name" para sobrescribir la creación del nombre del índice. | |
MongoCollection::remove | Cambiado 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::save | Añadido el parámetro options. | |
MongoCollection::update | Se añadió la opción "safe". | |
1.0.2 | MongoClient::__construct | Se 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::ensureIndex | Se 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::insert | Cambiado 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.1 | MongoCollection::insert | Lanza una MongoCursorException si la opción "safe" está establecida y la inserción falla. |
MongoCollection::update | Cambiado 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. |