SunshinePHP Developer Conference 2015

La classe MongoClient

(PECL mongo >=1.3.0)

Introduction

Un gestionnaire de connexion pour PHP et MongoDB.

Cette classe est utilisée pour créer et gérer les connexions. Voici une utilisation typique :

Exemple #1 Utilisation basique de MongoClient

<?php

$m 
= new MongoClient(); // connexion
$db $m->foo// récupération de la base de données nommée "foo"

?>

Voir MongoClient::__construct() ainsi que la section sur les connexions pour plus d'informations sur la création de connexion.

Synopsis de la classe

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" ;
/* Propriétés */
public boolean $connected = FALSE ;
public string $status = NULL ;
protected string $server = NULL ;
protected boolean $persistent = NULL ;
/* Méthodes */
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 pré-définies

MongoClient Constants

MongoClient::VERSION
Version du driver PHP. Peut être suffixée avec "dev", "+" ou "-" s'il s'agit d'une version intermédiaire.
MongoClient::DEFAULT_HOST
"localhost"
Hôte de connexion si aucun hôte n'est fourni.
MongoClient::DEFAULT_PORT
27017
Port de connexion si aucun port n'est fourni.
MongoClient::RP_PRIMARY
"primary"
Les préférences de lecture pour le membre du jeu de réplication primaire.
MongoClient::RP_PRIMARY_PREFERRED
"primaryPreferred"
Les préférences de lecture pour choisir le membre préféré du jeu de réplication primaire.
MongoClient::RP_SECONDARY
"secondary"
Les préférences de lecture pour un membre du jeu de réplication secondaire.
MongoClient::RP_SECONDARY_PREFERRED
"secondaryPreferred"
Les préférences de lecture pour choisir le membre préféré du jeu de réplication secondaire.
MongoClient::RP_NEAREST
"nearest"
Les préférences de lecture pour le membre le plus proche du jeu de réplication.

Champs

connected

Cette propriété devrait être définie à TRUE si nous avons une connexion ouverte sur la base de données,FALSE sinon. Si la connexion est un jeu de réplication, cette propriété ne pourra valoir que TRUE si le driver a une connexion à noeud correspondant à la préférence de lecture courante. Cette propriété ne prend pas en compte l'identification.

Cette propriété est obsolète depuis la version 1.5.0.

status

Cette propriété n'est plus utilisée et devrait être définie à NULL. Dans les versions 1.1.x et précédentes du driver, cette propriété devait être définie en tant que chaîne de caractères (i.e. "recycled", "new") lorsque les connexions persistentes étaient utilisées.

Cette propriété est obsolète depuis la version 1.5.0.

Voir aussi

Sommaire

add a note add a note

User Contributed Notes 4 notes

up
4
mike at eastghost dot com
1 year 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
3
mike at eastghost dot com
1 year 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
0
bennettsst at NOSPAM dot gmail dot com
5 months ago
Using the 1.2.5-5.5 vc11 driver the connected attribute is depracted.
up
-1
jazz at funkynerd dot com
1 year 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