(PECL mongo >=1.6.0)
Set the read preference for this command
public MongoCommandCursor MongoCommandCursor::setReadPreference ( string $read_preference [, array $tags ] )
Parameters:
read_preference
The read preference mode: MongoClient::RP_PRIMARY
, MongoClient::RP_PRIMARY_PREFERRED
, MongoClient::RP_SECONDARY
, MongoClient::RP_SECONDARY_PREFERRED
, or MongoClient::RP_NEAREST
.
tags
An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.
Returns:
Returns this cursor.
Exception:
Emits E_WARNING
if either parameter is invalid, or if one or more tag sets are provided with the MongoClient::RP_PRIMARY
read preference mode.
Examples:
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) { // ... } ?>
See also:
Please login to continue.