我在MongoDB GridFS中有一些数据。我正在使用Spring Data GridFsOperations
类来完成我的GridFS读取/写入操作。使用Spring Data MongoDB替换现有GridFS文件和新内容
我有一个要求来替换现有的GridFS文件的内容,即_id
和filename
应保持不变,但文件内容应该更新。
弹簧数据[GridFsOperations]
(API)主要允许find
,它返回一个蒙戈GridFSDBFile
,和store
。 GridFSDBFile
(API)不允许更新内容。如果文件首先被删除,然后使用与前一文件相同的_id
进行存储,理论上可以使用store
方法。但store
不允许指定_id
字段。
到目前为止,我发现的唯一解决方案是直接使用Mongo API删除现有文件,并使用相同的_id
存储新文件。这个效果的答案是没有用的:这个问题是特定于Spring Data MongoDB的。
是的,这基本上是我使用Mongo API所做的。 我想说的是,Spring Data的第一步可以让'store'方法获得预先存在的_id值,这样用户至少可以通过Spring Data在自己的代码中实现这个两步模式API。就目前而言,我不得不使用反射从GridFsOperations中获取私有'GridFS'对象,然后直接使用它来创建新文件。 – Raman 2013-03-13 18:14:55
你介意为此创建一个JIRA吗? – 2013-03-14 18:35:31
https://jira.springsource.org/browse/DATAMONGO-625 – Raman 2013-03-15 14:16:24