MongoDBにファイルを保存しています。後日それらを取得するためにObjectId
、各ファイルに関連付けられたものを記録しています。
GridFS fs = new GridFS(Dao.getDB(), "docs");
GridFSInputFile file = fs.createFile(fAsIS);
ObjectId id = (ObjectId)file.get("_id");
file = fs.createFile(fAsIS); //fAsIS is an InputStream
file.save();
ただし、返されるidの値は、格納されている値とは常に異なります。
例:
4e9845d6036400df09609b23が格納されます返される値は4e9845d6036400df09609b224e98466f036400df09609b27が格納されます返される値は4e98466f036400df09609b264e9848530364904b6b575003が格納されます返される値は4e9848530364904b6b575002
違いは最後の桁にのみあり、違いは一貫して同じです。戻り値は保存された値より1少ない値です。
保存された値を使用してテストを実行すると、ファイルは期待どおりに返されます。ですから、これは私が解決しなければならない問題のようです。
なぜこれが起こっているのか誰かが知っていますか?