E11000 erreur de clé en double index: MongoDb d'erreur inhabituels

J'ai un simple "utilisateurs" de la collection de l'intérieur qui en ce moment je n'ai que 2 documents.

{
    "_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,

maintenant, si j'essaie de créer un nouvel index avec {unique: true} sur email_id champ, mongodb plaintes m' "E11000 erreur de clé en double index: db.utilisateurs.$email_id dup clé: { : 46 }". J'obtiens la même erreur, même après la spécification {dropDups: true}, mais je ne pense pas que ce soit le cas ici, à la fois comme document de différents id de courrier électronique est stocké.

Je ne suis pas sûr de ce qui se passe ici, tous les pointeurs seront grandement appréciés.

Edit: vue Complète de documents:

{
"_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
 }
}

et

{
"_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
 }
}

Il ya un couple de plus de champs comme "display_name", "registered_since", etc que j'ai omis de l'écran, au-dessus (je ne pense pas qu'ils ont un rôle dans l'erreur renvoyée, si vous avez encore besoin d'eux, je peux sans doute coller l'intégralité des documents ici)

Je suis en utilisant erlang mongodb pilote pour la communication avec mon mongo instance. Tous les champs peuvent être vues sont enregistrées sous la forme d'octets binaires, c'est pourquoi vous voyez ces étranges email_id dans le document.

Note: Binaire octet de format n'est pas forcé par ma logique de code, j'ai beaucoup passer chaîne email_id à l'intérieur de mon bfils documents, mais j'ai toujours vu mes données sous forme binaire octets. (Probablement parce que la façon dont erlang mongodb pilote est écrit, je n'ai pas vraiment d'enquêter sur ce, depuis mon find(), find_one() et d'autres requêtes fonctionne comme prévu, même avec les champs enregistrés sous forme de fichiers binaires octets)

Edit: > db.les utilisateurs.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" : [ ]
}
Nous montrer plein de documents.
Pourquoi votre e-mail semble si étrange?
vérifiez les autres documents...
Vous avez besoin de fournir plus d'informations. Il semble que les documents que vous avez fournies sont incomplètes? Est-ce que "email_id' ont plus que 3 éléments? Peut-être l'élément 46 est dupliqué dans les deux documents? Quand/comment êtes-vous l'ajout d'un index? Est-ce dans un script ou dans le shell mongo? @Sergei Tulentsev dit, vous devez fournir une vue complète des documents. Et le plus petit ensemble de code que vous pouvez qui reproduit le problème.
Pouvez-vous coller la sortie de db.users.findOne() depuis le shell mongo? Je ne sais pas encore si Mongo est le traitement de ces sous forme de tableaux ou de sous-documents.

OriginalL'auteur Abhinav Singh | 2011-12-26