Docs Menu
Docs Home
/
Manual de base de datos
/

Lecturas reintentables

Las lecturas reintentables permiten que los controladores MongoDB reintenten automáticamente ciertas operaciones de lectura una sola vez si encuentran ciertos errores de red o servidor.

Versión mínima del controlador

Los controladores oficiales de MongoDB compatibles con MongoDB Server 6.0 y versiones posteriores admiten lecturas reintentables.

Para más información sobre los drivers oficiales de MongoDB, consulta Drivers de MongoDB.

Versión mínima del servidor
Los controladores solo pueden reintentar operaciones de lectura si están conectados al servidor MongoDB 6.0 o posterior.

Los controladores oficiales de MongoDB compatibles con MongoDB Server 6.0 y versiones posteriores habilitan las lecturas reintentables de forma predeterminada. Para deshabilitar explícitamente las lecturas reintentables, especifique retryReads=falseen la cadena de conexión para la implementación.

mongosh no admite lecturas reintentables.

Los controladores de MongoDB permiten reintentar las siguientes operaciones de lectura. La lista incluye una descripción general de cada método. Para conocer la sintaxis y el uso específicos, consulte la documentación del controlador correspondiente.

Métodos
Descripciones
Collection.aggregate
Collection.count
Collection.countDocuments
Collection.distinct
Collection.estimatedDocumentCount
Collection.find
Database.aggregate

Para Collection.aggregate Database.aggregatey, los controladores solo pueden volver a intentar las canalizaciones de agregación que no incluyen etapas de escritura, como $out $mergeo.

Operaciones de lectura de la API CRUD

Collection.watch
Database.watch
MongoClient.watch

Operaciones de flujo de cambios

MongoClient.listDatabases
Database.listCollections
Collection.listIndexes

Operaciones de enumeración

Operaciones de GridFS respaldadas por Collection.find (por ejemplo, GridFSBucket.openDownloadStream)

Operaciones de descarga de archivos GridFS

Los controladores de MongoDB pueden incluir compatibilidad con operaciones de reintento, como métodos auxiliares o métodos que encapsulan una operación de lectura con reintento. Consulte la documentación del controlador para determinar si un método admite explícitamente lecturas con reintento.

Tip

Las siguientes operaciones no admiten lecturas reintentables:

  • db.collection.mapReduce()

  • getMore

  • Cualquier comando de lectura pasado a un ayudante genérico Database.runCommand, que es independiente de los comandos de lectura o escritura.

Las lecturas reintentables de MongoDB solo realizan un reintento. Esto ayuda a solucionar errores de red transitorios o elecciones de conjuntos de réplicas, pero no errores de red persistentes.

El controlador realiza la selección del servidor utilizando la preferencia de lectura original del comando de lectura antes de volver a intentar la operación de lectura. Si el driver no puede seleccionar un servidor para el intento de reintento usando la preferencia de lectura original, el driver devuelve el error original.

Los controladores esperan serverSelectionTimeoutMS milisegundos antes de seleccionar el servidor. Las lecturas reintentables no abordan instancias donde no existen servidores elegibles después de serverSelectionTimeoutMS esperar.

Volver

Escrituras reintentables

En esta página