首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Java将流写入mongoDB

用Java将流写入mongoDB
EN

Stack Overflow用户
提问于 2016-03-22 10:26:51
回答 1查看 2.1K关注 0票数 3

我有一个文件要存储在mongoDB中。我想要的是避免加载整个文件(这可能是几个MBs的大小),相反,我想打开流并将它定向到mongoDB,以保持写操作的性能。我不介意将内容存储在base64编码的byte[]中。

之后,我希望在读取文件时也这样做--即不将整个文件加载到内存中,而是在流中读取它。

目前,我在Vertx服务器上使用hibernate-ogm,但是如果它高效地服务于原因,我可以切换到不同的api。

我想实际存储一个包含多个字段和多个附件的文档。

EN

回答 1

Stack Overflow用户

发布于 2016-03-22 10:36:37

您可以使用GridFS。特别是当您需要存储更大的文件(>16 is )时,这是推荐的方法:

代码语言:javascript
复制
File f = new File("sample.zip");
GridFS gfs = new GridFS(db, "zips");
GridFSInputFile gfsFile = gfs.createFile(f);
gfsFile.setFilename(f.getName());
gfsFile.setId(id);
gfsFile.save();

或者万一你有一个InputStream in

代码语言:javascript
复制
GridFS gfs = new GridFS(db, "zips");
GridFSInputFile gfsFile = gfs.createFile(in);
gfsFile.setFilename("sample.zip");
gfsFile.setId(id);
gfsFile.save();

可以使用GridFS.find方法之一加载文件:

代码语言:javascript
复制
GridFSDBFile gfsFile = gfs.findOne(id);
InputStream in = gfsFile.getInputStream();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36151868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档