首页 / MONGODB / MongoDB——GridFS
MongoDB——GridFS
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB——GridFS,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2254字,纯文字阅读大概需要4分钟。
内容图文
![MongoDB——GridFS](/upload/InfoBanner/zyjiaocheng/1235/97551092eff04762ac3e62d60f245e0b.jpg)
GridFS是一个规范的存储和检索文件超过16 mb的bson文档大小限制。
而不是将文件存储在一个文档中,GridFS文件分为部分,或块,每个块作为一个单独的文档。使用FridFS与使用分片无
关。在默认情况下网格文件系统块大小限制为255 k。GridFS文件系统使用两个集合存储文件。一个收集存储文件块,
其他商店文件元数据。
当你查询GridFS文件系统存储文件时,驱动或客户端将重新组装块。你可以通过GridFS文件系统上执行范围查询
文件存储。你也可以从任意部分的文件访问信息,你可以“跳过”的视频或音频文件。
网格文件系统不仅是有用的用于存储超过16 mb的文件,还用于存储任何文件,您想要访问而不需要整个文件加载到内
存中。
什么情况下使用?
在MongoDB文档集合,你应该总是使用GridFS存储文件大于16 MB。在某些情况下,在MongoDB数据库比系统级文件
系统存储大文件可能更有效。
(1)如果你的文件系统限制一个目录中的文件的数量,你可以根据需要使用GridFS文件系统存储尽可能多的文件。(2)当你想让你的文件和元数据自动同步和部署多个系统和设施。当使用分布式副本集MongoDB可以分发文件和
元数据自动生成mongod实例和设施。
(3)当您想要访问的信息来自部分大文件,而无需全部文件加载到内存中,您可以使用GridFS召回部分文件不用
读取整个文件到内存中。
如果需要自动更新整个文件的内容,不要使用GridFS。作为替代,你可以将每个文件存储多个版本,每个文件并指定元数据文件的当前版本。当上传新版本的文件之后,您可以更新元数据字段,在原子钟标明最新状态。之后删除以前的版本。
实现GridFS
使用GridFS文件系统来存储和检索文件:
(1)引入驱动(2)mongofiles mongo shell命令行工具。参考文档 点击打开链接
GridFS集合
GridFS将文件存储在两个集合:
块集合——存储二进制数据块。
块中的每个文档集合代表一个单独的块GridFS文件。下面是一个原型文档块集合。
{ "_id" : <ObjectId>, "files_id" : <ObjectId>, "n" : <num>, "data" : <binary> }
该块集合包含以下字段:
chunks._id 独特的ObjectId块。
chunks.files_id 父类文档事务id
chunks.n 块的序列号。GridFS文件系统数据块,从0开始。
chunks.data 块的有效载荷BSON二进制类型。
块使用复合索引文件集合id和n
文件——存储文件的元数据。
每个文档的文件集合表示GridFS文件系统中的一个文件存储。考虑下面的原型文档的文件集合:
{ "_id" : <ObjectId>, "length" : <num>, "chunkSize" : <num>, "uploadDate" : <timestamp>, "md5" : <hash>, "filename" : <string>, "contentType" : <string>, "aliases" : <string array>, "metadata" : <dataObject>, }
文档的文件集合包含以下字段的部分或全部。应用程序可以创建额外的任意字段:
files._id 本文档的惟一ID。id是为原始文档选择的数据类型。BSON ObjectId MongoDB文档的默认类型。
files.length 文件的大小(以字节为单位)。
files.chunkSize 每个块的大小。GridFS文件系统将文档划分为指定的块大小。默认大小是255字节。2.4.10版
本的变化:默认从256 k到256 k块大小改变。
files.uploadDate 文档第一次由GridFS存储的日期。这个值的日期类型。
files.md5 MD5散列filemd5返回的命令。这个值是字符串类型。
files.filename 可选的。一个可读的文档的名称。
files.contentType 可选的。一个合法的文档的MIME类型。
files.aliases 可选的。一个别名字符串数组。
files.metadata 可选的。想要存储任何额外的信息。
GridFS索引
GridFS文件系统使用一个独特的、复合索引文件的块集合id和n字段。id字段包含的id的文件块的“父”文档。n
字段包含块的序列号。网格文件系统数据块,从0开始。
GridFS文件系统索引允许使用的文件块的有效检索id和n值,如以下示例所示:
cursor = db.fs.chunks.find({files_id: myFileID}).sort({n:1});
如果你的驱动没有创建这个索引,使用mongo shell执行以下操作:
db.fs.chunks.ensureIndex( { files_id: 1, n: 1 }, { unique: true } );
原文:http://blog.csdn.net/zhangzijiejiayou/article/details/43225423
内容总结
以上是互联网集市为您收集整理的MongoDB——GridFS全部内容,希望文章能够帮你解决MongoDB——GridFS所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。