# The MongoDB\Driver\ReadPreference class

&reftitle.intro;

&reftitle.classsynopsis;

        MongoDB\Driver\ReadPreference

         final

          MongoDB\Driver\ReadPreference

          MongoDB\BSON\Serializable

          Serializable

        &Constants;

         const
         int
         MongoDB\Driver\ReadPreference::RP_PRIMARY
         1

         const
         int
         MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED
         5

         const
         int
         MongoDB\Driver\ReadPreference::RP_SECONDARY
         2

         const
         int
         MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED
         6

         const
         int
         MongoDB\Driver\ReadPreference::RP_NEAREST
         10

         const
         string
         MongoDB\Driver\ReadPreference::PRIMARY
         primary

         const
         string
         MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED
         primaryPreferred

         const
         string
         MongoDB\Driver\ReadPreference::SECONDARY
         secondary

         const
         string
         MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED
         secondaryPreferred

         const
         string
         MongoDB\Driver\ReadPreference::NEAREST
         nearest

         const
         int
         MongoDB\Driver\ReadPreference::NO_MAX_STALENESS
         -1

         const
         int
         MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS
         90

        &Methods;

&reftitle.constants;

`MongoDB\Driver\ReadPreference::RP_PRIMARY`

- All operations read from the current replica set primary. This is the default read preference for MongoDB.

  This constant has been DEPRECATED as of extension version 1.20.0 and will be removed in 2.0. Applications should use `MongoDB\Driver\ReadPreference::PRIMARY` instead.

`MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED`

- In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

  This constant has been DEPRECATED as of extension version 1.20.0 and will be removed in 2.0. Applications should use `MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED` instead.

`MongoDB\Driver\ReadPreference::RP_SECONDARY`

- All operations read from the secondary members of the replica set.

  This constant has been DEPRECATED as of extension version 1.20.0 and will be removed in 2.0. Applications should use `MongoDB\Driver\ReadPreference::SECONDARY` instead.

`MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED`

- In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

  This constant has been DEPRECATED as of extension version 1.20.0 and will be removed in 2.0. Applications should use `MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED` instead.

`MongoDB\Driver\ReadPreference::RP_NEAREST`

- Operations read from member of the replica set with the least network latency, irrespective of the member's type.

  This constant has been DEPRECATED as of extension version 1.20.0 and will be removed in 2.0. Applications should use `MongoDB\Driver\ReadPreference::NEAREST` instead.

`MongoDB\Driver\ReadPreference::PRIMARY`

- All operations read from the current replica set primary. This is the default read preference for MongoDB.

`MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED`

- In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

`MongoDB\Driver\ReadPreference::SECONDARY`

- All operations read from the secondary members of the replica set.

`MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED`

- In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

`MongoDB\Driver\ReadPreference::NEAREST`

- Operations read from member of the replica set with the least network latency, irrespective of the member's type.

`MongoDB\Driver\ReadPreference::NO_MAX_STALENESS`

- The default value for the `"maxStalenessSeconds"` option is to specify no limit on maximum staleness, which means that the driver will not consider a secondary's lag when choosing where to direct a read operation.

`MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS`

- The minimum value for the `"maxStalenessSeconds"` option is 90 seconds. The driver estimates secondaries' staleness by periodically checking the latest write date of each replica set member. Since these checks are infrequent, the staleness estimate is coarse. Thus, the driver cannot enforce a max staleness value of less than 90 seconds.

&reftitle.changelog;

&Version; | &Description;
PECL mongodb 1.20.0 | Deprecated the `MongoDB\Driver\ReadPreference::RP_PRIMARY`, `MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED`, `MongoDB\Driver\ReadPreference::RP_SECONDARY`, `MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED`, and `MongoDB\Driver\ReadPreference::RP_NEAREST` constants.
PECL mongodb 1.7.0 | Added the `MongoDB\Driver\ReadPreference::PRIMARY`, `MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED`, `MongoDB\Driver\ReadPreference::SECONDARY`, `MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED`, and `MongoDB\Driver\ReadPreference::NEAREST` constants. Implements Serializable.
PECL mongodb 1.2.0 | Added the `MongoDB\Driver\ReadPreference::NO_MAX_STALENESS` and `MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS` constants. Implements MongoDB\BSON\Serializable.

&reference.mongodb.mongodb.driver.entities.readpreference;