title: E11000 duplicate key error index: MongoDb unusual error
body: <p>I have a simple "users" collection inside which right now i have only 2 documents.</p>
  
  <pre><code>{
      "_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,
  </code></pre>
  
  <p>now if i try to create a new index with {unique: true} on email_id field, mongodb complaints me with "E11000 duplicate key error index: db.users.$email_id dup key: { : 46 }". I get same error even after specifying {dropDups: true}, however i don't think this is the case here, as both document have different email id's stored.</p>
  
  <p>I am not sure what's going on here, any pointers will be greatly appreciated.</p>
  
  <p><strong>Edit: Full view of documents:</strong></p>
  
  <pre><code>{
  "_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
   }
  }
  </code></pre>
  
  <p>and </p>
  
  <pre><code>{
  "_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
   }
  }
  </code></pre>
  
  <p>There are a couple of more fields like "display_name", "registered_since", etc which i have omitted from the display above (i don't think they have any role in the error thrown, if you still need them i can probably paste the entire documents here)</p>
  
  <p>I am using <a href="https://github.com/TonyGen/mongodb-erlang" rel="noreferrer">erlang mongodb driver</a> for communication with my mongo instance. All fields as can be seen are saved as binary bytes, thats why you see such weird email_id in document. </p>
  
  <p>Note: Binary byte format is not forced by my code logic, i very much pass string email_id inside my bson documents, but i always end up seeing my data as binary bytes. (Probably because how erlang mongodb driver is written, i didn't really investigate on this, since my find(), find_one() and other queries works as expected even with fields saved as binary bytes)</p>
  
  <p>Edit: > db.users.findOne()</p>
  
  <pre><code>{
  "_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" : [ ]
  }
  </code></pre>