MongoDB возвращает значения ObjectId, которые отличаются от того, что хранится (используя GridFS) - PullRequest
0 голосов
/ 14 октября 2011

Я храню файлы в 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 меньше сохраненного значения.

Когда я запускаю тест с сохраненным значением, файл возвращается, как и ожидалось.Похоже, это проблема, которую я должен решить.

Кто-нибудь знает, почему это может происходить?

1 Ответ

3 голосов
/ 04 января 2012

Возможно, потому что вы звоните fs.createFile(fAsIs) дважды

...