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);
?>
La classe MongoClient
(PECL mongoclient >=1.3.0)
Introduction
Une connexion entre 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 */
/* Propriétés */
protected
string
$server
=
NULL
;
protected
boolean
$persistent
=
NULL
;/* Méthodes */
public __construct
([ string
}$server = "mongodb://localhost:27017"
[, array $options = array("connect" => TRUE)
]] )Constantes pré-définies
MongoClient Constants
-
MongoClient::VERSION - Version du driver PHP. Peut être suffixée avec "+" 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_PORT27017 - 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 à
TRUEsi nous avons une connexion ouverte sur la base de données, basée sur les préférences de lecture ainsi que sur le jeu de tags (pour les connexions ReplicaSet),FALSEsinon. Cette propriété ne prend pas en compte l'authentification. - status
-
Si c'est une connexion persistente, si la connexion a été créée pour cet
objet ou est ré-utilisée. Si ce n'est pas une connexion persistente,
ce champ doit valoir
NULL.
Voir aussi
- Préférences de lecture
- Write Concerns
- Connection
- La documentation sur le coeur MongoDB, à propos des » connexions
Sommaire
- MongoClient::close — Ferme la connexion
- MongoClient::connect — Ouvre une connexion au serveur de base de données
- MongoClient::__construct — Crée un nouvel objet de connexion à une base de données
- MongoClient::dropDB — Supprime une base de données [obsolète]
- MongoClient::__get — Récupère une base de données
- MongoClient::getConnections — Retourne des informations sur toutes les connexions ouvertes
- MongoClient::getHosts — Met à jour les statuts de tous les hôtes associés
- MongoClient::getReadPreference — Récupère les préférences de lecture pour cette connexion
- MongoClient::listDBs — Liste toutes les bases de données disponibles
- MongoClient::selectCollection — Lit une collection de base de données
- MongoClient::selectDB — Récupère une base de données
- MongoClient::setReadPreference — Définit les préférences de lecture pour cette connexion
- MongoClient::__toString — Produit une représentation sous forme de chaîne de la connexion
jazz at funkynerd dot com ¶
5 months ago
mike at eastghost dot com ¶
2 months 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
mike at eastghost dot com ¶
2 months 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.
