Docs Menu
Docs Home
/ /
Cursors

cursor.readPref() (método mongosh)

cursor.readPref(mode, tagSet, hedgeOptions)

Importante

Método mongosh

Esta página documenta un método mongosh. Esta no es la documentación para un driver específico de lenguaje, como Node.js.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

Agregue readPref() a un cursor para controlar cómo el cliente enruta la query a los miembros del set de réplicas.

Nota

Debes aplicar readPref() al cursor antes de recuperar cualquier documento de la base de datos.

Parameter
Tipo
Descripción

moda

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 primary utiliza.

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

Documento

Opcional. Un documento que especifica si se habilitará el uso de lecturas protegidas.

{ enabled: <boolean> }

El campo enabled tiene como valor predeterminado verdadero; es decir, especificar un documento vacío { } es equivalente a especificar { enabled: true }.

Las lecturas protegidas están disponibles para clústeres fragmentados. Para usarlas,mongos debe tener enabled support para lecturas protegidas (valor predeterminado) y lasprimary preferencias de lectura que no sean deben habilitar el uso de lecturas protegidas.

La preferencia de lectura habilita el uso de lecturas cubiertas en clústeres fragmentados de manera predeterminada; es decir, de manera predeterminada,nearest { enabled: true } tiene.

readPref() 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

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • 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.

La siguiente operación utiliza el modo de preferencia de lectura para orientar la lectura a un miembro secundario.

db.collection.find({ }).readPref( "secondary")

Para apuntar a elementos secundarios con etiquetas específicas, incluya tanto el modo como la matriz tagSet:

db.collection.find({ }).readPref(
"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

En clústeres fragmentados, puede habilitar lecturas protegidas para preferencias de lectura no primarias. Para usar lecturas protegidas, el valor mongos predeterminado es enabled support para lecturas protegidas y lasprimary preferencias de lectura no primarias deben habilitar el uso de lecturas protegidas.

Para apuntar a los secundarios en clústeres fragmentados mediante lecturas cubiertas, incluya tanto el modo como las opciones de cobertura, como en los siguientes ejemplos:

  • Sin un conjunto de etiquetas

    db.collection.find({ }).readPref(
    "secondary", // mode
    null, // tag set
    { enabled: true } // hedge options
    )
  • Con un conjunto de etiquetas

    db.collection.find({ }).readPref(
    "secondary", // mode
    [ { "datacenter": "B" }, { } ], // tag set
    { enabled: true } // hedge options
    )

Volver

cursor.readConcern

En esta página