MongoCommandCursor::setReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::setReadPreferenceDéfini les préférences de lecture pour cette commande

Description

public MongoCommandCursor::setReadPreference ( string $read_preference [, array $tags ] ) : MongoCommandCursor

Liste de paramètres

read_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.

Valeurs de retour

Retourne le curseur.

Erreurs / Exceptions

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.

Exemples

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' => -] ],
] );

// 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) {
    
// ...
}

?>

Voir aussi