Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Mongo.setReadPref() (método mongosh)

Mongo.setReadPref(mode, tagSet)

Llamar al setReadPref() método sobre un Objeto de conexión Mongo para controlar cómo el cliente enrutará todas las consultas a los miembros del set de réplicas. [1]

Nota

Debe llamar a Mongo.setReadPref() en el objeto de conexión antes de recuperar documentos utilizando esa conexión para usar esa preferencia de lectura.

[1] Para aplicar una preferencia de lectura a una query específica, puedes aplicar cursor.readPref() a un cursor antes de la iteración. Consulte cursor.readPref() para obtener detalles.
Parameter
Tipo
Descripción

string

Uno de los siguientes modos de preferencia primary de lectura:,,, primaryPreferred secondarysecondaryPreferredo nearest

arreglo de documentos

opcional. Un conjunto de etiquetas utilizado para dirigir lecturas a los nodos con la(s) etiqueta(s) especificada(s). tagSet no está disponible si se utiliza el modo de preferencia de lectura primary.

Para obtener más detalles, consulte Listas de conjuntos de etiquetas de preferencias de lectura.

Mongo.setReadPref() no admite la opción Preferencia maxStalenessSeconds de lectura para preferencia de lectura.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Mongo.setReadPref() tiene el siguiente comportamiento.

A partir de mongosh 2.0, db.runCommand() ignora cualquier preferencia de lectura global añadida a través de la cadena de conexión o mediante el método Mongo.setReadPref(). Para especificar la preferencia de lectura deseada, usa el argumento options al invocar db.runCommand().

La siguiente operación establece la preferencia de lectura en el modo para dirigir la lectura a un secundario. Esto permite implícitamente lecturas desde secundarios.

db.getMongo().setReadPref('secondary')

Sin embargo, si se llama mientras se está conectado al primario usando mongosh, el comando anterior no enruta las consultas a un secundario.

Para dirigir los secundarios con etiquetas específicas, incluye tanto el modo como el arreglo tagSet:

db.getMongo().setReadPref(
"secondary",
[
{ "datacenter": "B" }, // First, try matching by the datacenter tag
{ "region": "West"}, // If not found, then try matching by the region tag
{ } // If not found, then use the empty document to match all eligible members
]
)

Durante el proceso de selección de secundaria, MongoDB intenta encontrar primero los miembros secundarios con la etiqueta datacenter: "B".

  • Si se encuentra, MongoDB limita los secundarios elegibles a aquellos con la etiqueta datacenter: "B" e ignora las etiquetas restantes.

  • Si no se encuentra ninguno, MongoDB intenta encontrar nodos secundarios con la etiqueta "region": "West".

    • Si se encuentra, MongoDB limita los secundarios elegibles a aquellos con la etiqueta "region": "West".

    • Si no se encuentra ninguno, MongoDB utiliza cualquier secundario elegible.

Consulte Orden de coincidencia de etiquetas para obtener más detalles.

Tip

Volver

Mongo.setCausalConsistency

En esta página