The MongoDB\Driver\Manager class
(mongodb >=1.0.0)
简介
The MongoDB\Driver\Manager is the main entry point to the extension. It is responsible for maintaining connections to MongoDB (be it standalone server, replica set, or sharded cluster).
No connection to MongoDB is made upon instantiating the Manager. This means the MongoDB\Driver\Manager can always be constructed, even though one or more MongoDB servers are down.
Any write or query can throw connection exceptions as connections are created lazily. A MongoDB server may also become unavailable during the life time of the script. It is therefore important that all actions on the Manager to be wrapped in try/catch statements.
类摘要
$uri
= "mongodb://127.0.0.1/", array $uriOptions
= array(), array $driverOptions
= array())$namespace
, MongoDB\Driver\BulkWrite $bulk
, array $options
= array()): MongoDB\Driver\WriteResult$db
, MongoDB\Driver\Command $command
, array $options
= array()): MongoDB\Driver\Cursor$namespace
, MongoDB\Driver\Query $query
, array $options
= array()): MongoDB\Driver\Cursor$db
, MongoDB\Driver\Command $command
, array $options
= array()): MongoDB\Driver\Cursor$db
, MongoDB\Driver\Command $command
, array $options
= array()): MongoDB\Driver\Cursor$db
, MongoDB\Driver\Command $command
, array $options
= array()): MongoDB\Driver\Cursor$readPreference
= null
): MongoDB\Driver\Server范例
示例 #1 MongoDB\Driver\Manager::__construct() basic example
var_dump()ing a MongoDB\Driver\Manager will print out various details about the manager that are otherwise not normally exposed. This can be useful to debug how the driver views your MongoDB setup, and which options are used.
<?php
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager);
?>
以上例程的输出类似于:
object(MongoDB\Driver\Manager)#1 (2) { ["uri"]=> string(26) "mongodb://127.0.0.1:27017/" ["cluster"]=> array(0) { } }
目录
- MongoDB\Driver\Manager::addSubscriber — Registers a monitoring event subscriber with this Manager
- MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
- MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object
- MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
- MongoDB\Driver\Manager::executeCommand — Execute a database command
- MongoDB\Driver\Manager::executeQuery — Execute a database query
- MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads
- MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes
- MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes
- MongoDB\Driver\Manager::getEncryptedFieldsMap — Return the encryptedFieldsMap auto encryption option for the Manager
- MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager
- MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager
- MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected
- MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager
- MongoDB\Driver\Manager::removeSubscriber — Unregisters a monitoring event subscriber with this Manager
- MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
- MongoDB\Driver\Manager::startSession — Start a new client session for use with this client

User Contributed Notes 3 notes
According to Mongo, this (i.e., MongoDB\Driver\Manager) is an "entry point" for the extension:
"This class serves as an entry point for the MongoDB PHP Library. It is the preferred class for connecting to a MongoDB server or cluster of servers and acts as a gateway for accessing individual databases and collections. MongoDB\Client is analogous to the driver’s MongoDB\Driver\Manager class, which it composes."
copied from here: https://docs.mongodb.com/php-library/master/reference/class/MongoDBClient/
However, any comparison of the "mongodb" docs here on php.net versus the "mongodb driver" docs on mongo's site shows dramatic and ever-changing differences.
Re mocking implications of final nature of MongoDB\Driver\Manager :
Final classes can be mocked through an indirection using a wrapper class.
备份地址:http://www.lvesu.com/blog/php/class.mongodb-driver-manager.php