Configuración en tiempo de ejecución

El comportamiento de estas funciones se ve afectado por la configuración de php.ini.

Opciones de configuración de Mongo
Nombre Por defecto Cambiable Historial de cambios
mongo.allow_empty_keys 0 PHP_INI_ALL  
mongo.allow_persistent 1 PHP_INI_ALL Eliminado en 1.2.0
mongo.chunk_size 262144 PHP_INI_ALL  
mongo.cmd "$" PHP_INI_ALL  
mongo.default_host "localhost" PHP_INI_ALL  
mongo.default_port 27017 PHP_INI_ALL  
mongo.is_master_interval 15 PHP_INI_ALL Añadido en 1.2.10, antes de 1.3.0 el valor predeterminado era 60.
mongo.long_as_object o PHP_INI_ALL  
mongo.native_long 1 PHP_INI_ALL Antes de la versión 1.5.0, el valor predeterminado era 0.
mongo.ping_interval 5 PHP_INI_ALL Añadido en 1.2.10
mongo.utf8 1 PHP_INI_ALL  
Para más detalles y definiciones de los modos de PHP_INI_*, vea Dónde se puede realizar un ajuste de configuración.

He aquí una breve explicación de las directivas de configuración.

mongo.allow_empty_keys int

Añadido en la versión 1.0.11.

Si deberían permitirse las cadenas vacías ("") como nombres de claves. Por omisión, el controlador lanzará una excepción si se intenta pasar la cadena vacía como una clave a la base de datos. Es extremadamente fácil hacer esto inadvertidamente usando comillas dobles con operadores $, por lo que se recomienda que se deje este ajuste predeterminado. Sin embargo, si se necesita guardar claves que son cadenas vacías, se puede establecer esta opción a true para que el controlador permita pasar cadenas vacías a la base de datos.

mongo.allow_persistent int

Indica si se permiten o no conexiones persistentes. (Eliminado en 1.2.0 - ahora todas las conexiones son persistentes).

mongo.chunk_size int

El número de bytes por bloque. Se usa al fragmentar ficheros GridFS. Este valor debe ser al menos 100 veces menor que 4 megabytes (máx: 4194204) y se recomienda que sea incluso menor.

mongo.cmd string

Un carácter que se utiliza en lugar de $ en los modificadores y comparaciones.

En vista de que es fácil olvidar escapar el carácter "$", puede elegirse cualquier otro en su lugar. Escoja un carácter que no aparezca en sus nombres de clave, como por ejemplo ":":

mongo.cmd = ":"

Ahora, para hacer una comparación, sería:

<?php

$query 
= array( "i" => array( ":gt" => 20":lte" => 30 ) );

?>

Puede cambiarse también en tiempo de ejecución usando ini_set("mongo.cmd", ":"). Por supuesto, también pueden usarse comillas simples o la barra \ para escapar el carácter $.

mongo.default_host string

Nombre de host predeterminaodo en caso de que no se especifique en el constructor.

mongo.default_port string

Puerto TCP predeterminado al conectar al servidor de bases de datos en caso de que no se especifique ningún puerto. El predeterminado para la base de datos es 27017.

mongo.is_master_interval int

Añadido en la versión 1.2.10.

Para conexiones de conjuntos réplica: El intervalo mínimo con el que el controlador enviará peticiones "isMaster" al servidor MongoDB. Si el valor es bajo, existirán más peticiones, pero el controlador será más rápido si la topología del conjunto réplica ha sido cambiada.

mongo.long_as_object int

Devuelve un BSON_LONG como una instancia de MongoInt64 (en lugar de usar el tipo primitivo).

mongo.native_long int

Este valor predeterminado ha cambiado a TRUE en 1.5.0, deberá asegurarse de establecer el valor deseado (probablemente TRUE) de manera que el comportamiento del controlador no se vea afectado al actualizarlo.

En plataformas de 64 bits, el ajuste mongo.native_long permite almacenar enteros de 64 bits en MongoDB. Si no se habilita, sólo se podrán almacenar enteros de 32 bits. El tipo de dato MongoDB usado en este caso es el BSON LONG, en lugar del BSON INT, que es el que funciona cuando se deshabilita este ajuste.

Este ajuste también cambia el modo en que los tipos BSON LONG se comportan cuando se consultan en MongoDB. Cuando mongo.native_long no está habilitado, el driver convierte todos los BSON LONG al tipo double de PHP, por lo que podría provocar una pérdida de precisión.

En plataformas de 32 bits, el ajuste mongo.native_log no tiene efecto al almacenar enteros en MongoDB: los enteros se almacenan como BSON INT. Sin embargo, cuando este ajuste está habilitado y se consulta un tipo BSON LONG en MongDB, se emitirá una excepción MongoCursorException alertando de que los datos podrían no leerse sin pérdida de precisión.

Se recomienda que, en sistemas de 32 bits especialmente, se combine esto con la habilitación de mongo.long_as_object.

mongo.ping_interval int

Añadido en la versión 1.2.10.

Para conexiones de conjuntos réplica: El intervalo mínimo con el que el controlador enviará peticiones "ping" al servidor MongoDB. Si el valor es bajo, existirán más pings, pero el controlador será más rápido si un nodo ya no sepuede recuperar del conjunto réplica.

mongo.utf8 int

Indica si se debe lanzar una excepción con cadenas que no sean UTF8. Hasta la versión 1.0.4, el controlador de PHP ignoraba las cadenas que no eran UTF8, incluso cuando no se esperaba que se fueran a insertar. Desde 1.0.4, el controlador emite una MongoException. Para facilitar la transición en las aplicaciones que insertan cadenas que no son UTF8, puede deshabiltiarse esta opción para emular el comportamiento anterior en el que no se emitían excepciones. Sin embargo, esta opción será eliminada en la versión 1.1.0, de manera que siempre se emitirán excepciones en textos que no son UTF8.