Ho una semplice raccolta "utenti" all'interno della quale in questo momento ho solo 2 documenti.E11000 indice di errore della chiave duplicata: errore insolito MongoDb
{
"_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,
ora se provo a creare un nuovo indice con {unico: true} sul campo EMAIL_ID, MongoDB mi lamentele con "E11000 duplicato indice di errore di chiave: db.users $ EMAIL_ID chiave DUP:. {: 46} ". Ottengo lo stesso errore anche dopo aver specificato {dropDups: true}, tuttavia non credo che questo sia il caso qui, poiché entrambi i documenti hanno un diverso ID di email memorizzato.
Non sono sicuro di cosa sta succedendo qui, qualsiasi suggerimento sarà molto apprezzato.
Edit: A piena vista dei documenti:
{
"_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
}
}
e
{
"_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
}
}
Ci sono un paio di campi come "DISPLAY_NAME", "registered_since", ecc, che ho omesso da il display sopra (non credo che abbiano alcun ruolo nell'errore generato, se ne hai ancora bisogno probabilmente posso incollare l'intero documento qui)
Sto usando erlang mongodb driver per le comunicazioni con la mia istanza di mongo. Tutti i campi che possono essere visti vengono salvati come byte binari, ecco perché vedi così strano email_id nel documento.
Nota: il formato del byte binario non è forzato dalla mia logica di codice, passo molto la stringa email_id all'interno dei miei documenti bson, ma finisco sempre per vedere i miei dati come byte binari. (Probabilmente perché il driver di erlang mongodb è stato scritto, in realtà non ho investigato su questo, dato che find(), find_one() e altre query funzionano come previsto anche con i campi salvati come byte binari)
Modifica:> 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" : [ ]
}
Mostraci tutti i documenti. –
Perché la tua email sembra così strana? –
controllare gli altri documenti ... –