Cuando conectamos una aplicación Node.js a un clúster en mongoDB Atlas, debemos agregar el siguiente URI en lugar de agregar "mongodb://localhost:27017/<dbname>" como puede ver en el paso 2 de la imagen .
"mongodb+srv://<username>:<password>@cluster1.tv7cp.mongodb.net/<dbname>?retryWrites=true&w=majority" Ahora, ¿cuál es exactamente el significado de ?retryWrites=true&w=majority después de <dbname> ? ¿Por qué necesitamos agregarlo?
Probé y ejecuté la aplicación con mongoose sin ?retryWrites=true&w=majority y funcionó bien.
Las escrituras reintentables permiten a los controladores de MongoDB reintentar automáticamente ciertas operaciones de escritura una sola vez si encuentran errores de red o si no pueden encontrar un primario en buen estado en los conjuntos de réplicas o en el clúster fragmentado.
Preocupación de escritura describe el nivel de reconocimiento solicitado de MongoDB para operaciones de escritura en un mongod independiente o en conjuntos de réplicas o en clústeres fragmentados. En los clústeres fragmentados, las instancias de mongos pasarán la preocupación de escritura a los fragmentos. (si su conjunto de réplicas tiene 3 miembros, eso significa que su mayoría = 2, lo que significa que su operación de escritura recibirá un reconocimiento después de recibir la confirmación de éxito de al menos 2 miembros)