PHP Velho Oeste 2024

Класс MongoClient

(PECL mongo >=1.3.0)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

Введение

Менеджер подключения между PHP и MongoDB.

Данный класс служит для создания и управления подключениями. Типичное использование:

Пример #1 Типичное использование MongoClient

<?php

$m 
= new MongoClient(); // соединение
$db $m->foo// получаем базу данных "foo"

?>

Смотрите MongoClient::__construct() и раздел по созданию подключений для более подробной информации по подключению к Mongo.

Обзор классов

MongoClient {
/* Константы */
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" ;
/* Свойства */
public boolean connected = FALSE ;
public string status = NULL ;
protected string server = NULL ;
protected boolean persistent = NULL ;
/* Методы */
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
}

Предопределенные константы

Константы MongoClient

MongoClient::VERSION
Версия PHP драйвера. Может оканчиваться суффиксом "dev", "+" или "-", если это промежуточная версия.
MongoClient::DEFAULT_HOST
Адрес сервера Mongo, к которому будет происходить подключение, если адрес не указан.
MongoClient::DEFAULT_PORT
Порт, к которому будет производиться подключение, если он не указан.
MongoClient::RP_PRIMARY
Предпочтение по выборке для основного члена набора реплик.
MongoClient::RP_PRIMARY_PREFERRED
Предпочтение по выборке для предпочтительного основного члена набора реплик.
MongoClient::RP_SECONDARY
Предпочтение по выборке для вторичного члена набора реплик.
MongoClient::RP_SECONDARY_PREFERRED
Предпочтение по выборке для предпочтительного вторичного члена набора реплик.
MongoClient::RP_NEAREST
Предпочтение по выборке для ближайшего члена набора реплик.

Параметры

connected

Этот параметр будет установлен в TRUE, если есть открытое соединение с базой, иначе - FALSE. Если соединение происходит к набору реплик, то это свойство может быть равным TRUE в случае, если есть соединение к узлу, соответствующему текущей настройке на чтение. Этот параметр не учитывает аутентификацию.

Это свойство устарело с версии 1.5.0.

status

Это свойство больше не используется и должно быть установлено в NULL. В драйвере версии 1.1.x и ранее, это свойство можно задать строками (т.е. "recycled", "new"), если используется постоянное соединение.

Это свойство устарело с версии 1.5.0.

Смотрите также

Содержание

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