MongoDB存储文件在哪里,方法是怎样的
关于“MongoDB存储文件在哪里,方法是怎样的”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。
这篇关于“MongoDB存储文件在哪里,方法是怎样的”的文章就介绍到这了,更多相关的内容,欢迎关注博信,小编将为大家输出更多高质量的实用文章!
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存储文件在哪里,方法是怎样的”的文章就介绍到这了,更多相关的内容,欢迎关注博信,小编将为大家输出更多高质量的实用文章!
版权声明
本文仅代表作者观点,不代表博信信息网立场。