GridFS是一种将大型文件存储在MongoDB数据库中的文件规范。它是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件。其基本原理是将文件保存在两个Collection中,一个保存文件索引,一个保存文件内容。文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值)的存储。下面介绍的是一些常用的命令行:
(1)存储文件到mongodb中
mongofiles put c:\1.txt
(2)查看所有
mongofiles list
(3)查找search
mongofiles search xxx
查询所有文件包含1.txt的文件
(4)查询特定前缀的文件
mongofiles list xxx
查询文件名前缀为c的所有文件
(5)查看文件的元数据信息
db.fs.files.find();
其中filename:存储的文件名
chunSize:chunks分块的大小,即每块大小为256KB。
uploadDate:入库时间
md5:此文件的md5码。
l ength:此文件大小,单位:“字节”.(6)查询其他相关信息的二进制块
db.fs.chunks.find();
其中 n代表的是chunks的序号,从0开始。可以看出fs.chunks中存储的实际内容信息。
(7)校验md5码
首选删除C:\1.txt。
接着:
通过md5sum进行文件校验(这里的md5命令是外部引入的)
结果与库中存储的md5值相同。
另外,可以通过mongodb的管理工具进行查看,比如MongoVUE等。