2012-05-12 35 views
-1

我開始使用mongodb,並且我想要執行操作,嘗試插入usernamepasswordemail的用戶。我在usernameemail上構建了唯一索引,因此如果指定的用戶名或電子郵件已存在,則插入操作將失敗。在插入嘗試後從java中讀取mongod的錯誤結果

因此,現在我想向用戶報告,他們的電子郵件已被註冊,或者選擇的用戶名被採用。

CommandResult result = db.getLastError(); 

不過,我沒有看到一個簡單的方法來讀取不是通過單一的錯誤信息,這是給我解析其他錯誤:所以我儘可能得到。

{ "serverUsed" : "127.0.0.1:27017" , 
    "err" : "E11000 duplicate key error index: mojulo.users.$username_1 dup key: { : \"blahblah\" }" , 
    "code" : 11000 , 
    "n" : 0 , 
    "connectionId" : 12 , 
    "ok" : 1.0} 

而且看起來,這只是報告的第一個錯誤,它遇到的,反正是有做電子郵件和用戶名檢查在一個單一的查詢?

回答

1

如果你想對兩者進行檢查,那麼你將不得不自己發出一個查詢來檢查它。如果您只是插入文檔,那麼它將僅報告唯一索引的第一次違反。代碼E11000應該只顯示一個重複的鍵錯誤,應該很容易發現它發生。您將需要解析錯誤消息以找出收集。

相關問題