Я храню файлы в 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 сохранено возвращаемое значение равно 4e9845d6036400df09609b22 4e98466f036400df09609b27 сохранено возвращенное значение 4e98466f036400df 09603 530 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 530 0 или или иных значениях, не может быть полученопоследняя цифра и разница всегда одинаковы: возвращаемое значение на 1 меньше сохраненного значения.
Когда я запускаю тест с сохраненным значением, файл возвращается, как и ожидалось.Похоже, это проблема, которую я должен решить.
Кто-нибудь знает, почему это может происходить?