2012-04-29 8 views
3

を挿入し、私はこの次のデータベースを持っている、これはデータベース内にすでにオブジェクトですPerlのMongoDBのエラーMSG

{ "_id" : ObjectId("001"), "password" : "test", "user" : "test"} 

物事は、ユーザーとパスワード

2の上に、そのコレクションに

1.indexを追加します。ユーザーに対する一意のインデックス

同じパラメータをアイテムに挿入しようとすると

my $enter = $db->data->insert({'user'=>'test','password'=>'test'}); 

$はモンゴが

E11000重複キーエラーインデックスをシェルを介し

を(ユーザーが繰り返された場合、それはエラーMSGを取得するのではなくOBJECTID必要があります)返しますのObjectIDの値を入力します。dataofitem.user

その示すエラーが、私は(https://metacpan.org/module/MongoDB

のPerlモジュールを介してみたときに、それは私が代わりにOBJECTIDのエラーMSGを得did'tなぜ私は思っていた、オブジェクトIDとして返された

+1

あなたのコードとあなたが言ったエラーメッセージを表示しますか? –

+0

@mugenkenichiさん、もう少し情報をチェックしました –

答えて

5

MongoDB :: Collection :: insertはエラーをチェックしません。

失敗した場合に、モジュールしゃがれ声を作るために

my $enter = $db->data->insert({'user'=>'test','password'=>'test'}, {safe => 1}); 

を試してみてください。あなたはまた、文書化hereとして

my $error = $db->last_error(); 

を行うことができますエラーをチェックしたい場合はこれがMongoDB::Collection

に記載されています。

+0

安全が真ならば、クルックはプロセスを殺すだけです。エラーを文字列に渡す方法 –

+0

私がすでに回答しているので、使用しないと 'last_error'で確認できます'{safe => 1}'となります。 –

関連する問題