MongoCursor::slaveOkay

(PECL mongo >=0.9.4)

MongoCursor::slaveOkayУстанавливает, может ли этот запрос быть выполнен на вторичном сервере [устарел]

Описание

public MongoCursor::slaveOkay ( bool $okay = true ) : MongoCursor
Внимание

Этот метод устарел с версии 1.5.0. Вместо этого, пожалуйста, используйте MongoCursor::setReadPreference() и Предпочтения чтения.

Использование этого вызовет чтение маршрута драйвера для вторичных серверов, если:

  • Вы используете набор реплик, и
  • Вы создали экземпляр MongoClient, используя опцию "replicaSet" => "setName", и
  • Существует рабочий вторичный сервер, который может быть достигнут драйвером.
Вы можете проверить, какой сервер использовался для этого запроса, вызвав MongoCursor::info() после выполнения запроса. Поле server покажет, на какой сервер был отправлен запрос.

Обратите внимание, что вы должны использовать эту функцию, даже если вы не используете автоматическую маршрутизацию к вторичным серверам. Если вы подключаетесь напрямую к вторичному серверу в наборе реплик, вам все равно нужно вызвать эту функцию, которая в основном сообщает базе данных, что вы знаете, что вы можете получать более старые данные, и с этим все в порядке. Если вы не выполните это, вы получите ошибку "not master" при попытке запроса.

Этот метод переопределит статичную переменную класса MongoCursor::$slaveOkay. Также переопределит Mongo::setSlaveOkay(), MongoDB::setSlaveOkay() и MongoCollection::setSlaveOkay().

Список параметров

okay

Если все в порядке, чтобы запросить вторичный сервер.

Возвращаемые значения

Возвращает курсор.

Ошибки

Выдает исключение MongoCursorException, если этот курсор начал итерацию.

Примеры

Пример #1 Пример использования MongoCursor::slaveOkay()

<?php

MongoCursor
::$slaveOkay false;

// не можем запросить вторичный сервер
$cursor $collection->find();

// можем запросить вторичный сервер
$cursor $collection->find()->slaveOkay();

MongoCursor::$slaveOkay true;

// можем запросить вторичный сервер
$cursor $collection->find();

// не можем запросить вторичный сервер
$cursor $collection->find()->slaveOkay(false);

?>

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

Список изменений

Версия Описание
PECL mongo 1.5.0 Метод устарел. Используйте вместо него MongoCursor::setReadPreference() и Предпочтения чтения.