Я ищу правильный синтаксис для использования набора реплик. Я вижу документацию на странице PHP http://php.net/manual/en/mongo.construct.php, но я не совсем уверен, что будет дальше.
<?php
// pass a comma-separated list of server names to the constructor
$m1 = new Mongo("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));
// you only need to pass a single seed, the driver will derive the full list and
// find the master from this seed
$m2 = new Mongo("mongodb://ny1.example.com", array("replicaSet" => "myReplSet"));
?>
После этого я должен написать что-то вроде
if( $m1 ){ $mongo = $m1; }else{ $mongo = $m2; }
Это полное содержание моего существующего класса, которое я использую в codeigniter. Необходимо включить его для поддержки наборов реплик.
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class CI_Mongo extends Mongo
{
var $db;
function CI_Mongo()
{
// Fetch CodeIgniter instance
$ci = get_instance();
// Load Mongo configuration file
$ci->load->config('mongo');
// Fetch Mongo server and database configuration
$server = config_item('mongo_server');
$dbname = config_item('mongo_dbname');
// Initialise Mongo
if ($server)
{
parent::__construct($server);
}
else
{
parent::__construct();
}
$this->db = $this->$dbname;
}
}
?>