(PECL mongo >=1.6.0)
MongoCommandCursor::setReadPreference — Set the read preference for this command
$read_preference
[, array $tags
] )read_preference
El modo de preferencia de lectura: MongoClient::RP_PRIMARY
, MongoClient::RP_PRIMARY_PREFERRED
, MongoClient::RP_SECONDARY
, MongoClient::RP_SECONDARY_PREFERRED
, o MongoClient::RP_NEAREST
.
tags
Un array de cero o más conjuntos de etiquetas, donde cada conjunto de etiquetas es también un array de criterios usados para comparar etiquetas con miembros de un conjunto de réplicas.
Returns this cursor.
Emite un error de nivel E_WARNING
si el parámetro no es válido, o si se proporcionan uno o más conjuntos de etiquetas con el modo de preferencia de lectura MongoClient::RP_PRIMARY
.
Ejemplo #1 MongoCommandCursor::setReadPreference() tag set array syntax example
<?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 ] ],
] );
// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$cursor->setReadPreference(MongoClient::RP_NEAREST, [
[ 'dc' => 'east', 'use' => 'reporting' ],
[ 'dc' => 'west' ],
] );
foreach ($cursor as $person) {
// ...
}
// If the read preference is changed, it will be used the next time the cursor
// is rewound and the command is re-executed.
$cursor->setReadPreference(MongoClient::RP_PRIMARY);
foreach ($cursor as $person) {
// ...
}
?>