0

我将文件存储在 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。

当我使用存储的值运行测试时,文件按预期返回。所以这似乎是我必须解决的问题。

有谁知道为什么会发生这种情况?

4

1 回答 1

3

可能是因为你打fs.createFile(fAsIs)了两次电话

于 2012-01-04T14:21:33.883 回答