# La clase MongoDB\Driver\ReadPreference

(mongodb >=1.0.0)

## Introducción

## Sinopsis de la Clase

final class MongoDB\Driver\ReadPreference implements MongoDB\BSON\Serializable, Serializable {
/* Propiedades */
public readonly string $mode;
public readonly ?array $tags;
public readonly int $maxStalenessSeconds;
public readonly ?object $hedge;
/* Constantes */
const string PRIMARY = primary;
const string PRIMARY_PREFERRED = primaryPreferred;
const string SECONDARY = secondary;
const string SECONDARY_PREFERRED = secondaryPreferred;
const string NEAREST = nearest;
const int NO_MAX_STALENESS = -1;
const int SMALLEST_MAX_STALENESS_SECONDS = 90;
/* Métodos */
final public function bsonSerialize(): stdClass
final public function __construct(string `$mode`, ?array `$tagSets` = `null`, ?array `$options` = `null`)
final public function getHedge(): ?object
final public function getMaxStalenessSeconds(): int
final public function getMode(): int
final public function getModeString(): string
final public function getTagSets(): array
}

## Propiedades

mode
  El modo de preferencia de lectura como cadena (por ejemplo `"primary"`, `"secondary"`).
tags
  La lista de conjuntos de tags utilizada por la preferencia de lectura, o `null` si no se especificó ningún conjunto de tags.
maxStalenessSeconds
  La duración máxima de obsolescencia en segundos para las lecturas, o `MongoDB\Driver\ReadPreference::NO_MAX_STALENESS` si no se especificó ninguna duración máxima de obsolescencia.
hedge
  Un documento que especifica las opciones de hedge para la preferencia de lectura, o `null` si no se especificó ninguna opción de hedge.
  Advertencia

  Esta propiedad está obsoleta ya que las lecturas con hedge están obsoletas en MongoDB 8.0.

## Constantes predefinidas

`MongoDB\Driver\ReadPreference::PRIMARY`

  Todas las operaciones se leen desde el primario actual del conjunto de réplicas. Esta es la preferencia de lectura por omisión para MongoDB.

`MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED`

  En la mayoría de las situaciones, las operaciones se leen desde el primario, pero si no está disponible, las operaciones se leen desde los miembros secundarios.

`MongoDB\Driver\ReadPreference::SECONDARY`

  Todas las operaciones se leen desde los miembros secundarios del conjunto de réplicas.

`MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED`

  En la mayoría de los casos, las operaciones se leen desde los miembros secundarios, pero si ningún miembro secundario está disponible, las operaciones se leen desde el primario.

`MongoDB\Driver\ReadPreference::NEAREST`

  Las operaciones se leen desde el miembro del conjunto de réplicas con la menor latencia de red, independientemente del tipo de miembro.

`MongoDB\Driver\ReadPreference::NO_MAX_STALENESS`

  El valor por omisión de la opción `"maxStalenessSeconds"` es no especificar ningún límite sobre la obsolescencia máxima, lo que significa que el controlador no tendrá en cuenta el desfase de un secundario al elegir dónde dirigir una operación de lectura.

`MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS`

  El valor mínimo de la opción `"maxStalenessSeconds"` es de 90 segundos. El controlador estima la obsolescencia de los segundos verificando periódicamente la última fecha de escritura de cada miembro del conjunto de réplicas. Como estos controles son poco frecuentes, la estimación de la obsolescencia es aproximada. Por lo tanto, el controlador no puede aplicar un valor de obsolescencia máxima inferior a 90 segundos.

## Historial de cambios

Versión | Descripción
--- | ---
PECL mongodb 2.3.0 | Se añadieron las propiedades públicas readonly.
PECL mongodb 2.0.0 | Eliminar las constantes `MongoDB\Driver\ReadPreference::RP_PRIMARY`, `MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED`, `MongoDB\Driver\ReadPreference::RP_SECONDARY`, `MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED`, y `MongoDB\Driver\ReadPreference::RP_NEAREST`. El método getMode() también fue eliminado.
PECL mongodb 1.7.0 | Añadir las constantes `MongoDB\Driver\ReadPreference::PRIMARY`, `MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED`, `MongoDB\Driver\ReadPreference::SECONDARY`, `MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED`, `MongoDB\Driver\ReadPreference::NEAREST`. Implementa Serializable.
PECL mongodb 1.2.0 | Añadir las constantes `MongoDB\Driver\ReadPreference::NO_MAX_STALENESS` y `MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS`. Implementa MongoDB\BSON\Serializable.

## Tabla de contenidos

- MongoDB\Driver\ReadPreference::bsonSerialize — Devuelve un objeto para la serialización BSON
- MongoDB\Driver\ReadPreference::__construct — Crear una nueva ReadPreference
- MongoDB\Driver\ReadPreference::getHedge — Devuelve la opción "hedge" del ReadPreference
- MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Devuelve la opción "maxStalenessSeconds" del ReadPreference
- MongoDB\Driver\ReadPreference::getMode — Devuelve la opción "mode" del ReadPreference
- MongoDB\Driver\ReadPreference::getModeString — Devuelve la opción "mode" del ReadPreference
- MongoDB\Driver\ReadPreference::getTagSets — Devuelve la opción "tagSets" de ReadPreference

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open