2012-05-12 3 views
-1

私はmongodbを使い始めています。私はusernamepassword、およびemailのユーザーを挿入しようとしました。 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は重複したキーエラーを示すだけで、発生したことを容易に発見できるはずです。あなたはコレクションを把握するために、エラーメッセージを解析する必要があります。

関連する問題