我在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值始终与存储的值不同。
E.g。当:
存储返回的值为4e9845d6036400df09609b22 4e98466f036400df09609b27存储返回的值是4e98466f036400df09609b26 4e9848530364904b6b575003存储的返回值是4e9848530364904b6b575002区别仅在于最后一位数,差异始终相同:返回值比存储值小1。
当我使用存储的值运行测试时,将按预期返回文件。所以这似乎是我必须解决的问题。
有谁知道为什么会这样?
答案 0 :(得分:3)
可能是因为您拨打了fs.createFile(fAsIs)
两次