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

296
Vistas
Hacer que el índice _id sea único en una colección mongodb

Hace poco vi este error en un conjunto de réplicas de Mongo 2.6:

 WARNING: the collection 'mydatabase.somecollection' lacks a unique index on _id. This index is needed for replication to function properly.

Asumí que el índice _id sería único por defecto. Pero estoy tratando de verificar / configurarlo. getIndexes muestra que no hay un conjunto de opciones único.

 > db.somecollection.getIndexes()[0] { "v" : 1, "key" : { "_id" : 1 }, "ns" : "mydatabase.somecollection", "name" : "_id_" } > db.somecollection.ensureIndex({"_id":1},{unique:true}) > { "numIndexesBefore" : 3, "note" : "all indexes already exist", "ok" : 1 } > db.somecollection.getIndexes()[0] { "v" : 1, "key" : { "_id" : 1 }, "ns" : "mydatabase.somecollection", "name" : "_id_" }

He intentado .validate(true) :

 ... "valid" : true, "errors" : [ ], "ok" : 1 }

y también .reIndex() que se ejecuta sin error. No puedo eliminar el índice _id para volver a crearlo. ¿Cómo puedo configurar el índice como único o qué debo hacer para garantizar la coherencia de los datos en el RS? Tenga en cuenta que el RS se actualizó según las instrucciones de actualización de 2.2 --> 2.4 --> 2.6. Descubrí que MongoDB - Collection carece de un índice único en _id, pero no hay nada que resuelva mi problema allí.

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

0

He visto esto en el pasado cuando se agregó un nuevo miembro al conjunto de réplicas con una versión de compatibilidad diferente. Ejecute db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) en todos sus nodos en el conjunto de réplicas y, si uno es diferente, detenga la replicación en ese nodo, cambie CompatibilityVersion y luego prepárelo para la réplica.

over 4 years ago · Santiago Trujillo Denunciar

0

Entonces resulta que el error apareció cuando se agregó un nuevo miembro al conjunto de réplicas existente y solo se mostró en ese miembro. Si me conecto a la base de datos y trato de agregar un _id duplicado, obtengo el E11000 duplicate key error index: ... aunque getIndexes() no indica la restricción única en el índice (suponiendo que sea implícito).

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