(PECL mongo >=1.6.0)
MongoCommandCursor::setReadPreference — Défini les préférences de lecture pour cette commande
$read_preference
[, array $tags
] ) : MongoCommandCursorread_preference
Le mode de préférence de lecture : MongoClient::RP_PRIMARY
, MongoClient::RP_PRIMARY_PREFERRED
, MongoClient::RP_SECONDARY
, MongoClient::RP_SECONDARY_PREFERRED
, ou MongoClient::RP_NEAREST
.
tags
Un tableau de zéro ou plusieurs jeux de tags, où chaque jeu de tags est lui même un tableau de critères utilisés pour faire correspondre les tags sur les membres du jeu de réplication.
Retourne le curseur.
Emets une alerte de niveau E_WARNING
si soit le paramètre est invalide, soit si un ou plusieurs jeux de tags sont fournis avec le mode de préférence de lecture MongoClient::RP_PRIMARY
.
Exemple #1 Exemple avec MongoCommandCursor::setReadPreference() et un tableau de jeux de tag
<?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 ] ],
] );
// Préférer le serveur le plus proche dans le centre de données "east" également
// utilisé pour le rporting, mais utilise le centre de données "west" en cas de problème
$cursor->setReadPreference(MongoClient::RP_NEAREST, [
[ 'dc' => 'east', 'use' => 'reporting' ],
[ 'dc' => 'west' ],
] );
foreach ($cursor as $person) {
// ...
}
// Si les préférences de lecture sont changées, elles seront utilisées la
// prochaine fois que le curseur sera ré-initialisé et que la commande sera
// ré-exécutée.
$cursor->setReadPreference(MongoClient::RP_PRIMARY);
foreach ($cursor as $person) {
// ...
}
?>