Definición
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.
Parámetros
Parameter | Tipo | Descripción |
|---|---|---|
string | Uno de los siguientes modos de preferencia | |
arreglo de documentos | Opcional. Un conjunto de etiquetas que se utiliza para dirigir las lecturas a los miembros con las etiquetas especificadas. Para obtener más detalles, consulte Listas de conjuntos de etiquetas de preferencias de lectura. | |
Documento | opcional. Un documento que especifica si debe habilitarse el uso de lecturas protegidas.
El campo Las lecturas protegidas están disponibles para clústeres fragmentados. Para usarlas, La preferencia de lectura habilita el uso de lecturas cubiertas en clústeres fragmentados de manera predeterminada; es decir, de manera predeterminada, |
readPref() no admite la opción Preferencia maxStalenessSeconds de lectura para preferencia de lectura.
Compatibilidad
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.
Ejemplos
Especificar el modo de preferencia de lectura
La siguiente operación utiliza el modo de preferencia de lectura para orientar la lectura a un miembro secundario.
db.collection.find({ }).readPref( "secondary")
Especificar conjunto de etiquetas de preferencia de lectura
Para dirigir los secundarios con etiquetas específicas, incluye tanto el modo como el arreglo 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 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.
Especifique lectura protegida
Para clústeres fragmentados, puedes habilitar las lecturas protegidas para preferencias de lectura que no son primarias. Para utilizar lecturas protegidas, el mongos debe tener enabled support para lecturas protegidas (por defecto) y el preferencia de lectura que no seaprimary debe habilitar el uso de lecturas protegidas.
Para dirigir segundarios en clústeres usando lecturas protegidas, incluya tanto la moda como las hedgeOptions, 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 )