创建查询以从文件 GRIDFS 中获取某些特定部分

Creating query to get some certain parts from a file GRIDFS

在我的 Spring 引导应用程序中,我使用 GridFS 将大文件存储在我的数据库中。为了查找某些文件,我对文件集合使用了常规查询:

GridFSFile file = gridFsTemplate.findOne(Query.query(Criteria.where(ID).is(id)));

但是通过这种方法我得到了整个文件。

我的问题是,如何在不将整个文件加载到内存的情况下创建一些查询? 我存储的文件是书籍(pdf 格式),假设我想从某个页面获取内容而不将整本书加载到内存中。 我猜我将不得不使用块集合并对块执行一些操作,但我找不到如何执行此操作。

描述了 GridFS here。驱动程序不提供用于检索部分文件的标准化 API,但您可以阅读该规范并构建自己的查询来检索部分写入的块。

您的特定驱动程序可能提供部分文件检索功能,请查阅其文档。