#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));
?>
- Однако, что возвращает $ m1?
- Если я хочу узнать мастер и реплицирует так, чтобы мастер был ответственен за запись, а одна из реплик была соединением для чтения, каков наилучший способ, которым я должен это выяснить и что мне следует сделать?
- Могу ли я иметь постоянное значение, отличное от каждой реплики? или они должны использовать один и тот же канал подключения?
Комментарии:
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))
.