gridfs是一种将大型文件存储在mongodb数据库中的文件规范。 一、如何实现海量存储 由于Mongodb中的bson对象大小是限制的,所以gridfs规范提供了一种透明的机制,可以将一个大文件分成多个较小的文件。这样的机制允许有效地保存大文件的对象,特别是哪些巨大
gridfs是一种将大型文件存储在mongodb数据库中的文件规范。
一、如何实现海量存储
由于Mongodb中的bson对象大小是限制的,所以gridfs规范提供了一种透明的机制,可以将一个大文件分成多个较小的文件。这样的机制允许有效地保存大文件的对象,特别是哪些巨大的文件,比如视频,高清图片;该规范指定了一个将文件分块的标准,每个文件都在集合对象中保存一个元数据对象,一个或多个块对象可被组合在一个chunk块集合中。mongodb中主要是利用mongofiles工具。
Grifs使用两个表来存储数据:
Files(包含元数据对象)
Difeye是一款超轻量级PHP框架,主要特点有: Difeye是一款超轻量级PHP框架,主要特点有: ◆数据库连接做自动主从读写分离配置,适合单机和分布式站点部署; ◆支持Smarty模板机制,可灵活配置第三方缓存组件; ◆完全分离页面和动作,仿C#页面加载自动执行Page_Load入口函数; ◆支持mysql,mongodb等第三方数据库模块,支持读写分离,分布式部署; ◆增加后台管理开发示例
chunks(抱哈你一些相关信息的二进制块)
为了使多个gridfs命名为一个单一的数据库,文件和块都有一个前缀。默认情况下,前缀是fs.所以任何默认的gridfs存储将包括命名空间fs.files和fs.chunks。
二、命令行工具
mongofiles是从命令行操作gridfs的一种工具,例如将“testfile”这个文件存到数据库里面,可以执行如下操作。首先咱们整体认识一下mongofiles:
实例存放文件到数据库中

db.fs.files.find()参数说明:
filename:储存文件的名称; chunksize:chunks的大小 uploaddate:入库时间 md5:文件的md5码 length:文件的大小(单位:字节)
db.fs.chunks.find()参数说明:
n:代表chunks的序号,此序号是从0开始; data字段就是实际存储的数据
从数据库取出来数据:
D:\Program Files\mongodb\bin>mongofiles get test.txt connected to: 127.0.0.1 done write to: test.txt
gridfs文件也可以创建索引,一个块就可以利用它file_id和n的值来进行检索。
db.fs.files.find()参数说明:









