El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
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 |
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.