Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

379
Vistas
Mongo .find() devolviendo documentos duplicados (con el mismo _id) (!)

Mongo parece estar devolviendo documentos duplicados para la misma consulta, es decir, devuelve más documentos que _id únicos en los documentos devueltos:

 lobby-brain> count_iterated = 0; ids = {} {} lobby-brain> db.the_collection.find({ 'a_boolean_key': true }).forEach((el) => { count_iterated += 1; ids[el._id] = (ids[el._id]||0) + 1; }) lobby-brain> count_iterated 278 lobby-brain> Object.keys(ids).length 251

Es decir, el número de _id únicos devueltos es 251, pero el cursor devolvió 278 documentos.

Investigando más:

 lobby-brain> ids { '60cb8cb92c909a974a96a430': 1, '61114dea1a13c86146729f21': 1, '6111513a1a13c861467d3dcf': 1, ... '61114c491a13c861466d39cf': 2, '61114bcc1a13c861466b9f8e': 2, ... } lobby-brain> db.the_collection.find({ _id: ObjectId("61114c491a13c861466d39cf") }).forEach((el) => print("foo")); foo >

Es decir, en realidad no hay documentos duplicados con el mismo _id ; es solo un problema con .find() .

Intenté reiniciar la base de datos y reconstruir un índice que involucraba 'a_boolean_key', con los mismos resultados.

Nunca había visto esto antes y parece imposible... ¿Qué está causando esto y cómo puedo solucionarlo?

Información de la versión:

 Using MongoDB: 5.0.5 Using Mongosh: 1.0.4

Es una base de datos independiente, sin conjunto de réplicas ni fragmentación ni nada por el estilo.

Informacion adicional

Una cosa a tener en cuenta es que hay un índice compuesto con a_boolean_key como primer índice y un campo de fecha y hora como segundo. La clave booleana rara vez se actualiza en la base de datos (~una vez al día), pero el campo de fecha y hora se actualiza con frecuencia.

¿Quizás estas actualizaciones están causando los valores de retorno duplicados?

Actualización 15 de febrero de 2022: agregué una tarea de Mongo JIRA aquí .

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Intente verificar si almacena índices para el campo a_boolean_key .

Al realizar un count , MongoDB puede devolver el conteo usando solo el índice

Entonces, tal vez no tenga índices para todos los documentos, por lo que el resultado del método de count no es igual a su conteo manual.

over 4 years ago · Santiago Trujillo Denunciar

0

Según Louis Williams en Mongo JIRA , esto no es un error sino un comportamiento esperado.

¡Aprenda algo nuevo cada día!

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda