Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

380
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda