The 5th Annual China PHP Conference

La clase MongoClient

(PECL mongo >=1.3.0)


Esta extensión que define esta clase está obsoleta. En su lugar debe usarse la extensión MongoDB. Las alternativas a esta clase son:


Un administrador de conexiones para PHP y MongoDB.

Esta clase sirve para crear un administrar conexiones. Un uso típico es:

Ejemplo #1 Uso básido de MongoClient


= new MongoClient(); // conectar
$bd $m->foo// obtener la base de datos "foo"


Véase MongoClient::__construct() y la sección sobre conexiones para más información para crear conexiones.

Sinopsis de la Clase

MongoClient {
/* Constantes */
const string VERSION ;
const string DEFAULT_HOST = "localhost" ;
const int DEFAULT_PORT = 27017 ;
const string RP_PRIMARY = "primary" ;
const string RP_PRIMARY_PREFERRED = "primaryPreferred" ;
const string RP_SECONDARY = "secondary" ;
const string RP_SECONDARY_PREFERRED = "secondaryPreferred" ;
const string RP_NEAREST = "nearest" ;
/* Propiedades */
public boolean $connected = FALSE ;
public string $status = NULL ;
protected string $server = NULL ;
protected boolean $persistent = NULL ;
/* Métodos */
public __construct ([ string $server = "mongodb://localhost:27017" [, array $options = array("connect" => TRUE) [, array $driver_options ]]] )
public bool close ([ boolean|string $connection ] )
public bool connect ( void )
public array dropDB ( mixed $db )
public MongoDB __get ( string $dbname )
public static array getConnections ( void )
public array getHosts ( void )
public array getReadPreference ( void )
public array getWriteConcern ( void )
public bool killCursor ( string $server_hash , int|MongoInt64 $id )
public array listDBs ( void )
public MongoCollection selectCollection ( string $db , string $collection )
public MongoDB selectDB ( string $name )
public bool setReadPreference ( string $read_preference [, array $tags ] )
public bool setWriteConcern ( mixed $w [, int $wtimeout ] )
public string __toString ( void )

Constantes predefinidas

Constantes de MongoClient

Versión del controlador de PHP. Podría estar sufijado con "dev", "+" o "-" si está entre versiones.
Host al que conectar si no se proporciona uno.
Puerto al que conectar si no se proporciona uno.
Preferencia de lectura para el miembro primario del conjunto de réplica.
Preferencia de lectura para elegir el miembro primario del conjunto de réplica.
Preferencia de lectura para un miembro secundario del conjunto de réplica.
Preferencia de lectura para elegir un miembro secundario del conjunto de réplica.
Preferencia de lectura para el miembro más cercano del conjunto de réplica.



Esta propiedad será establecida a TRUE si se tienen una conexión abierta a la base de datos, o FALSE de lo contrario. Si la conexión es a un conjunto de réplica, esta propiedad solamente será TRUE si el controlador tiene una conexión a un nodo que coincida con la preferencia de lectura actual. Esta propiedad no toma en cuenta la autenticación.

Esta propiedad está obsoleta desde la versión 1.5.0.


Esta propiedad ya no se usa y será establecida a NULL. En las versiones 1.1.x y anteriores del controlador, podría establecerse a un valor string (p.ej. "recycled", "new") cuando se usen conexiones persistentes.

Esta propiedad está obsoleta desde la versión 1.5.0.

Ver también

Tabla de contenidos

add a note add a note

User Contributed Notes 5 notes

mike at eastghost dot com
4 years ago
php monogo driver 1.3.4
feb 2013

After demoting old replicaset primary to secondary, and promoting old replicaset second into primary, we began seeing "No candidate servers found" MongoException at initial attempt to connect to (new) replicaset primary (via this hint in the /etc/mongo.conf: replSet = rs1/

Fix seems to be

1. NEVER list "localhost" in the bind= line of /etc/mongo.conf

2. ALWAYS list every replica set member in every member's /etc/hosts file -- there seems to be something wrong with DNS lookup timing.
mike at eastghost dot com
4 years ago
This will help maintain sanity while debugging replicaSet connectivity problems:

error_reporting( E_ALL )
// print every log message possible
\MongoLog::setLevel(\MongoLog::ALL); // all log levels
\MongoLog::setModule(\MongoLog::ALL); // all parts of the driver
East Ghost Com
8 months ago
One MongoClient is required per every MongoDB.

So, if you have a website-specific database but also a shared database (like maybe one holding ZipCodes and State names), then each needs its own MongoClient.  One MongoClient can not be shared amongst multiple MongoDB's.
bennettsst at NOSPAM dot gmail dot com
3 years ago
Using the 1.2.5-5.5 vc11 driver the connected attribute is depracted.
jazz at funkynerd dot com
4 years ago
Seeing as the Mongo class has been deprecated, I'm using the following code to allow compatibility with the pre 1.3.0 driver successfully.

= 'MongoClient';

$class = 'Mongo';
$conn = new $class($hosts, $args);
To Top