我有一個簡單的「用戶」集合裏面,現在我只有2個文件。E11000重複鍵錯誤指數: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,
現在,如果我嘗試創建一個新的指數{獨特:真正}上EMAIL_ID場,MongoDB的投訴我「E11000重複鍵錯誤指數:db.users $ EMAIL_ID DUP鍵:{46} 」。即使在指定{dropDups:true}後,我也會得到相同的錯誤,但是我不認爲這是這種情況,因爲兩個文檔都存儲有不同的電子郵件ID。
我不確定這裏發生了什麼,任何指針將不勝感激。
編輯:證件的完整視圖:
{
"_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
}
}
和
{
"_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
}
}
有一對夫婦更喜歡 「DISPLAY_NAME」, 「registered_since」 等領域我從省略上面的顯示(我不認爲他們在拋出的錯誤中有任何作用,如果你仍然需要它們,我可以在這裏粘貼整個文檔)
我正在使用erlang mongodb driver與我的mongo實例進行通信。所有可以看到的字段都保存爲二進制字節,這就是爲什麼你在文檔中看到這樣奇怪的email_id。
注:二進制字節格式不被我的代碼邏輯所迫,我非常通字符串我BSON文件裏面EMAIL_ID,但我總是最後看到我的數據的二進制字節。 (可能是因爲如何編寫erlang mongodb驅動程序,因爲我的find(),find_one()和其他查詢按預期工作,即使字段保存爲二進制字節也沒有調查)
編輯:> 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" : [ ]
}
向我們展示完整文檔。 – 2011-12-26 21:28:37
爲什麼你的電子郵件看起來很奇怪? – 2011-12-26 21:29:13
檢查其他文檔... – 2011-12-26 21:51:06