mongodb操作文件,主要是通过GridFS类。存储文件主要存放在fs中,其中的fs是数据库默认的。并且GridFS是直接与数据库打交道,与collection集合无关。
由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。
但是由于一个BJSON的长度不能超过4M,所以限制了单个文档中能存入的文件不能超过4M。为了提供对大容量文件存取的支持,samus驱动提供了“GridFS”方式来支持。
/** *存储文件 *@paramcollectionName集合名 *@paramfile文件 *@paramfileid文件id *@paramcompanyid文件的公司id *@paramfilename文件名称 */ publicvoidSaveFile(StringcollectionName,Filefile,Stringfileid,Stringcompanyid,Stringfilename){ try{ DBdb=mongoTemplate.getDb(); //存储fs的根节点 GridFSgridFS=newGridFS(db,collectionName); GridFSInputFilegfs=gridFS.createFile(file); gfs.put("aliases",companyid); gfs.put("filename",fileid); gfs.put("contentType",filename.substring(filename.lastIndexOf("."))); gfs.save(); }catch(Exceptione){ e.printStackTrace(); System.out.println("存储文件时发生错误!!!"); } } //取出文件 publicGridFSDBFileretrieveFileOne(StringcollectionName,Stringfilename){ try{ DBdb=mongoTemplate.getDb(); //获取fs的根节点 GridFSgridFS=newGridFS(db,collectionName); GridFSDBFiledbfile=gridFS.findOne(filename); if(dbfile!=null){ returndbfile; } }catch(Exceptione){ //TODO:handleexception } returnnull; }
这篇关于“MongoDB存储文件在哪里,方法是怎样的”的文章就介绍到这了,更多相关的内容,欢迎关注恒创科技,小编将为大家输出更多高质量的实用文章!