2

我在 MongoDB GridFS 中有一些数据。我正在使用 Spring DataGridFsOperations类来执行我的 GridFS 读/写。

我需要替换现有 GridFS 文件的内容,即_idandfilename应该保持不变,但文件内容应该更新。

Spring Data [GridFsOperations]( API ) 主要允许find返回一个 MongoGridFSDBFilestore. GridFSDBFile( API ) 不允许更新内容。store如果先删除文件,然后与之前的文件一样存储,理论上可以使用该方法_id。但是store不允许指定_id字段。

到目前为止我找到的唯一解决方案是直接使用 Mongo API 删除现有文件,并使用相同的_id. 这种效果的答案没有用:这个问题特定于 Spring Data MongoDB。

4

1 回答 1

0

尚未公开 API 的原因是 MongoDB GridFS 上不支持该 API。您基本上解决了这个问题,实现了这里描述的模式。但由于这归结为非原子操作,我们决定一开始就不将其公开为操作。

如果您认为此模式有可靠的实现(以及对错误情况的适当处理),请随时在我们的JIRA中打开票证以讨论选项。

于 2013-03-13T16:59:18.737 回答