我将文件存储在 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存储的值返回是4E98466F036400DF096035003 4E9848530364904B6B575003存储的值返回是4E9848530364904B6B575002
差异仅在最后一位,差异始终相同:返回值比存储值小 1。
当我使用存储的值运行测试时,文件按预期返回。所以这似乎是我必须解决的问题。
有谁知道为什么会发生这种情况?