MongoCommandCursor::setReadPreference
(PECL mongo >=1.6.0)
MongoCommandCursor::setReadPreference — Устанавливает предпочтения чтения для команды
Описание
$read_preference
, array $tags
= ?
) : MongoCommandCursorСписок параметров
-
read_preference
-
Режимы предпочтения чтения:
MongoClient::RP_PRIMARY
,MongoClient::RP_PRIMARY_PREFERRED
,MongoClient::RP_SECONDARY
,MongoClient::RP_SECONDARY_PREFERRED
иMongoClient::RP_NEAREST
. -
tags
-
Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.
Возвращаемые значения
Возвращает курсор.
Ошибки
Генерирует ошибку уровня E_WARNING
, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY
.
Примеры
Пример #1 MongoCommandCursor::setReadPreference() пример синтаксиса массива набора тегов
<?php
$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');
$cursor = $collection->aggregateCursor( [
[ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
[ '$sort' => [ 'points' => -1 ] ],
] );
// Предпочитаем ближайший сервер в "восточном" центре обработки данных,
// также используемый для отчетности, но используем сервер в "западном" центре обработки данных.
$cursor->setReadPreference(MongoClient::RP_NEAREST, [
[ 'dc' => 'east', 'use' => 'reporting' ],
[ 'dc' => 'west' ],
] );
foreach ($cursor as $person) {
// ...
}
// Если предпочтения чтения изменено, они будут использованы
// при следующей перемотке курсора и повторном выполнении команды.
$cursor->setReadPreference(MongoClient::RP_PRIMARY);
foreach ($cursor as $person) {
// ...
}
?>
Смотрите также
- Документация по предпочтениям чтения.
- MongoCommandCursor::getReadPreference() - Получает предпочтения чтения для команды
- MongoCursorInterface::setReadPreference() - Устанавливает предпочтения чтения для этого запроса