これは通常のMongoDBの動作であり、Javaドライバーとは何の関係もないという印象を受けました。
ドキュメントで見つけることができるのは、これ> :
挿入コード>
update
でもない また、 remove
、 n
は指定されていないようで、0はデフォルト値と同じくらい適切です。 mongoシェルで簡単に確認できます:
> db.test.insert({_id: 'test'})
> db.getLastErrorObj()
{ "n" : 0, "connectionId" : 7, "err" : null, "ok" : 1 }
私が間違っていない限り、それは実際には問題ではありません。どのような状況で挿入が失敗するかを自問してください(たとえば、接続の失敗を除く)。私が考えることができる唯一のものは、例外をもたらすユニシティ制約違反です。つまり、ほぼ定義上、 WriteResult
を受け取るという事実 インスタンスは、操作が成功し、ドキュメントが挿入されたことを意味します。
いくつかのメモ:
- 私の前の議論はあなたの
WriteConcern
にかかっています エラーが報告されるほど十分に高い。WriteConcern.NONE
を使用している場合 たとえば、例外は発生しません。 - 更新されたドキュメントの数が絶対に必要な場合は、いつでも
save
を使用できます。insert
の代わりに 。あまりきれいではありませんが、期待どおりに動作します。