Класс MongoClient

(PECL mongo >=1.3.0)

Введение

Менеджер подключения между 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 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 )
}

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

Константы MongoClient

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

Параметры

connected

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

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

status

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

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

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

Содержание

Коментарии

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);
?>
2012-11-28 03:36:46
http://php5.kiev.ua/manual/ru/class.mongoclient.html
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.
2013-03-07 11:34:24
http://php5.kiev.ua/manual/ru/class.mongoclient.html
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
2013-03-07 11:35:54
http://php5.kiev.ua/manual/ru/class.mongoclient.html
Using the 1.2.5-5.5 vc11 driver the connected attribute is depracted.
2014-05-12 14:20:30
http://php5.kiev.ua/manual/ru/class.mongoclient.html
Автор:
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.
2016-09-01 03:56:07
http://php5.kiev.ua/manual/ru/class.mongoclient.html

    Поддержать сайт на родительском проекте КГБ