Docs Menu
Docs Home
/ /

Mongo.setReadPref() (método mongosh)

Mongo.setReadPref(mode, tagSet)

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

Nota

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

[1] Para aplicar una preferencia de lectura a una o varias consultas específicas, puede aplicar cursor.readPref() a un cursor antes de la iteración. Consulte para obtener cursor.readPref() más información.
Parameter
Tipo
Descripción

string

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

conjunto de documentos

Opcional. Un conjunto de etiquetas que se utiliza para dirigir las lecturas a los miembros con las etiquetas especificadas. tagSet no está disponible si se utiliza el modo de preferencia de primary lectura.

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 2.0 mongosh, ignora cualquier preferencia de lectura global añadida mediante la cadena de conexión odb.runCommand() el Mongo.setReadPref() método. Para especificar la preferencia de lectura deseada, utilice el options argumento al llamar db.runCommand() a.

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

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

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

Para apuntar a elementos secundarios con etiquetas específicas, incluya tanto el modo como la matriz 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 secundaria, MongoDB intenta encontrar primero 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 miembros secundarios con la etiqueta "region": "West".

    • Si se encuentran, 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