(mongodb >=1.0.0)
MongoDB\Driver\ReadPreference::__construct — Create a new ReadPreference
$mode
   [, array $tagSets = NULL
   [, array $options = array()
  ]] )Constructs a new MongoDB\Driver\ReadPreference, which is an immutable value object.
mode
| Value | Description | 
|---|---|
| MongoDB\Driver\ReadPreference::RP_PRIMARYor "primary" | All operations read from the current replica set primary. This is the default read preference for MongoDB. | 
| MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERREDor "primaryPreferred" | In most situations, operations read from the primary but if it is unavailable, operations read from secondary members. | 
| MongoDB\Driver\ReadPreference::RP_SECONDARYor "secondary" | All operations read from the secondary members of the replica set. | 
| MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERREDor "secondaryPreferred" | In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary. | 
| MongoDB\Driver\ReadPreference::RP_NEARESTor "nearest" | Operations read from member of the replica set with the least network latency, irrespective of the member's type. | 
tagSetsTag sets allow you to target read operations to specific members of a replica set. This parameter should be an array of associative arrays, each of which contain zero or more key/value pairs. When selecting a server for a read operation, the driver attempt to select a node having all tags in a set (i.e. the associative array of key/value pairs). If selection fails, the driver will attempt subsequent sets. An empty tag set (array()) will match any node and may be used as a fallback.
      Tags are not compatible with the
      MongoDB\Driver\ReadPreference::RP_PRIMARY mode and,
      in general, only apply when selecting a secondary member of a set for a
      read operation. However, the
      MongoDB\Driver\ReadPreference::RP_NEAREST mode, when
      combined with a tag set, selects the matching member with the lowest
      network latency. This member may be a primary or secondary.
     
options
| Option | Type | Description | 
|---|---|---|
| hedge | object|array | Specifies whether to use hedged reads. Server hedged reads are available for all non-primary read preferences and are enabled by default when using the "nearest" mode. This object allows explicitly enabling server hedged reads for non-primary read preferences, as well as disabling them for the "nearest" read preference. | 
| maxStalenessSeconds | integer | Specifies a maximum replication lag, or "staleness", for reads from secondaries. When a secondary's estimated staleness exceeds this value, the driver stops using it for read operations. 
            If specified, the max staleness must be a signed 32-bit integer
            greater than or equal to
             
            Defaults to
             
            This option is not compatible with the
             | 
mode is invalid.tagSets is provided for a primary read preference or is malformed (i.e. not an array of zero or more documents).
| Versión | Descripción | 
|---|---|
| 1.3.0 | 
         The  | 
| 1.2.0 | 
         Added a third  | 
Ejemplo #1 MongoDB\Driver\ReadPreference::__construct() example
<?php
/* Prefer a secondary node but fall back to a primary. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));
/* Prefer a node in the New York data center with lowest latency. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]));
/* Require a secondary node whose replication lag is within two minutes of the primary */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['maxStalenessSeconds' => 120]));
/* Explicitly enable server hedged reads */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['hedge' => ['enabled' => true]]));
?>
El resultado del ejemplo sería:
object(MongoDB\Driver\ReadPreference)#1 (1) {
  ["mode"]=>
  string(18) "secondaryPreferred"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(7) "nearest"
  ["tags"]=>
  array(1) {
    [0]=>
    object(stdClass)#2 (1) {
      ["dc"]=>
      string(2) "ny"
    }
  }
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["hedge"]=>
  object(stdClass)#1 (1) {
    ["enabled"]=>
    bool(true)
  }
}