PHP Velho Oeste 2024

La clase MongoClient

(PECL mongo >=1.3.0)

Advertencia

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

Introducción

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

<?php

$m 
= 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 close ([ boolean|string $connection ] ) : bool
public connect ( void ) : bool
public dropDB ( mixed $db ) : array
public __get ( string $dbname ) : MongoDB
public static getConnections ( void ) : array
public getHosts ( void ) : array
public getReadPreference ( void ) : array
public getWriteConcern ( void ) : array
public killCursor ( string $server_hash , int|MongoInt64 $id ) : bool
public listDBs ( void ) : array
public selectCollection ( string $db , string $collection ) : MongoCollection
public selectDB ( string $name ) : MongoDB
public setReadPreference ( string $read_preference [, array $tags ] ) : bool
public setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool
public __toString ( void ) : string
}

Constantes predefinidas

Constantes de MongoClient

MongoClient::VERSION
Versión del controlador de PHP. Podría estar sufijado con "dev", "+" o "-" si está entre versiones.
MongoClient::DEFAULT_HOST
"localhost"
Host al que conectar si no se proporciona uno.
MongoClient::DEFAULT_PORT
27017
Puerto al que conectar si no se proporciona uno.
MongoClient::RP_PRIMARY
"primary"
Preferencia de lectura para el miembro primario del conjunto de réplica.
MongoClient::RP_PRIMARY_PREFERRED
"primaryPreferred"
Preferencia de lectura para elegir el miembro primario del conjunto de réplica.
MongoClient::RP_SECONDARY
"secondary"
Preferencia de lectura para un miembro secundario del conjunto de réplica.
MongoClient::RP_SECONDARY_PREFERRED
"secondaryPreferred"
Preferencia de lectura para elegir un miembro secundario del conjunto de réplica.
MongoClient::RP_NEAREST
"nearest"
Preferencia de lectura para el miembro más cercano del conjunto de réplica.

Campos

connected

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.

status

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

up
8
mike at eastghost dot com
11 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
up
5
mike at eastghost dot com
11 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/pri.eastghost.com)

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.
up
-1
East Ghost Com
7 years 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.
up
-3
bennettsst at NOSPAM dot gmail dot com
9 years ago
Using the 1.2.5-5.5 vc11 driver the connected attribute is depracted.
up
-29
jazz at funkynerd dot com
11 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.

<?php
$class
= 'MongoClient';

if(!
class_exists($class)){
           
   
$class = 'Mongo';
           
}
       
$conn = new $class($hosts, $args);
?>
To Top