Tengo una simple colección de "usuarios" dentro de la cual ahora solo tengo 2 documentos.E11000 índice de error de clave duplicada: MongoDb error inusual
{
"_id": ObjectId("4ef8e1e41d41c87069000074"),
"email_id": {
"0": 109,
"1": 101,
"2": 64,
"3": 97,
{
"_id": ObjectId("4ef6d2641d41c83bdd000001"),
"email_id": {
"0": 109,
"1": 97,
"2": 105,
"3": 108,
ahora si intento crear un nuevo índice con {único: true} en el campo email_ID, me quejas mongodb con "E11000 duplicar índice de error de clave: db.users clave DUP $ email_ID:. {:} 46 ". Recibo el mismo error incluso después de especificar {dropDups: true}, sin embargo, no creo que este sea el caso aquí, ya que ambos documentos tienen diferentes id de correo electrónico almacenados.
No estoy seguro de lo que está pasando aquí, cualquier puntero será muy apreciado.
Editar: A la vista de los documentos:
{
"_id": ObjectId("4ef8e1e41d41c87069000074"),
"email_id": {
"0": 109,
"1": 101,
"2": 64,
"3": 97,
"4": 98,
"5": 104,
"6": 105,
"7": 110,
"8": 97,
"9": 118,
"10": 115,
"11": 105,
"12": 110,
"13": 103,
"14": 104,
"15": 46,
"16": 99,
"17": 111,
"18": 109
}
}
y
{
"_id": ObjectId("4ef6d2641d41c83bdd000001"),
"email_id": {
"0": 109,
"1": 97,
"2": 105,
"3": 108,
"4": 115,
"5": 102,
"6": 111,
"7": 114,
"8": 97,
"9": 98,
"10": 104,
"11": 105,
"12": 110,
"13": 97,
"14": 118,
"15": 64,
"16": 103,
"17": 109,
"18": 97,
"19": 105,
"20": 108,
"21": 46,
"22": 99,
"23": 111,
"24": 109
}
}
Hay un par de más campos como "display_name", "registered_since", etc, que he omitido de la pantalla de arriba (no creo que tengan ningún rol en el error arrojado, si aún los necesita, probablemente pueda pegar toda la documentación aquí)
Estoy usando erlang mongodb driver para la comunicación con mi instancia de mongo. Todos los campos que se pueden ver se guardan como bytes binarios, por eso se ve un email_id tan extraño en el documento.
Nota: el formato de bytes binarios no está forzado por mi lógica de código, paso mucho cadena string_id dentro de mis documentos bson, pero siempre termino viendo mis datos como bytes binarios. (Probablemente porque como erlang mongodb driver está escrito, realmente no investigé sobre esto, ya que mi find(), find_one() y otras consultas funcionan como se espera incluso con campos guardados como bytes binarios)
Edit:> db .users.findOne()
{
"_id" : ObjectId("4ef6d2641d41c83bdd000001"),
"email_id" : [
109,
97,
105,
108,
115,
102,
111,
114,
97,
98,
104,
105,
110,
97,
118,
64,
103,
109,
97,
105,
108,
46,
99,
111,
109
],
"display_name" : [
65,
98,
104,
105,
110,
97,
118,
43,
83,
105,
110,
103,
104
],
"provider" : [
106,
97,
120,
108,
46,
105,
109
],
"provider_id" : [ ]
}
Muéstranos documentos completos. –
¿Por qué su correo electrónico se ve tan extraño? –
revise los otros documentos ... –