Список вопросов PHP Mongo: Что возвращает _construct, когда ReplicaSet имеет значение true?

#php #mongodb

#php #mongodb

Вопрос:

в руководстве по 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" => true));

// 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" => true));

?>
  
  1. Однако, что возвращает $ m1?
  2. Если я хочу узнать мастер и реплицирует так, чтобы мастер был ответственен за запись, а одна из реплик была соединением для чтения, каков наилучший способ, которым я должен это выяснить и что мне следует сделать?
  3. Могу ли я иметь постоянное значение, отличное от каждой реплики? или они должны использовать один и тот же канал подключения?

Комментарии:

1. $m1 ЭТО объект, созданный классом Mongo. Он вернет сам объект.

Ответ №1:

Еще немного о # 2: класс Mongo автоматически определяет, кто является основным и второстепенным, затем отправляет записи на первичный (и считывает на вторичный, если вы установили slaveOkay).

Ответ №2:

1) $ m1 и $ m2 вернут объект Mongo (подключение к базе данных), а не значение как таковое. 2) Вы можете найти мастер, используя $m1->isMaster(); 3) Не совсем уверен, что вы имеете в виду, они должны быть идентичны.

Комментарии:

1. Является ли $ m1 основным? или мне нужно использовать $isMaster()? 3) спасибо. понял

2. Кстати, нет метода isMaster(), который вы можете запустить $m1->someDb->command(array("isMaster"=>1)) .