将数据附加到现有gridfs文件

我可以看到java mongo驱动程序不提供从现有gridFS文件com.mongodb.gridfs.GridFSFile获取OutputStreamfunction

我必须直接创建GridFSInputFile或使用gridFs.createFile()方法。

是缺少java驱动程序还是限制gridfs?

您能否建议除创建新文件/删除旧文件之外的任何解决方法?

谢谢

GridFS不是MongoDB的核心function,而是存储带有伴随元数据的二进制数据的惯例。 您应该能够以通常的方式修改fs.chunks集合中的任何文档,同时保持fs.files相应文档不变。 主要问题是重新计算MD5校验和,但AFAIK它不会在任何地方使用,只是一个“免费”奖金。 无论如何,仍然可以进行仅附加修改(参见恢复下载的MD5摘要 )。

因此,要附加到现有的GridFS文件,您需要在fs.files找到相应的文档。 然后根据最后的块填充率( lengthchunkSize == 0),您可以在fs.chunks重写关于chunkSize的最后一个块文档,和/或简单地添加具有递增n字段的新块。 接下来更新fs.files length以及可能的其他元数据。