天天看点

MongoDB_GridFS_存储文件

GridFS

mongoDB除了保存各种文档(JOSN结构)外还能够保存文件。GridFS规范提供了一种透明机制,可以将一个大文件分割成为多个较小的文档,这样的机制允许我们有效的保存大文件对象,特别对于那些巨大的文件,比如视频、高清图片等。

GridFS使用两个表来存储数据:

文件的元数据放在这个集合里面,默认fs.files。这个里面的每个文档表示GridFS中的一个文件,与文件相关的自定义元数据也保存在其中,除了用户自定义的键,GridFS还有默认的一些键:

_id:文件唯一的id,在块中为“files_id”键的值存储

length:文件内容总的字节数

chunksize:每块的大小,以字节为单位。默认25K,可以调整

uploadDate:文件存入的时间

md5:文件内容的md5校验,由服务端生成

GridFS的块有个单独的集合。默认情况下,块将使用fs.chunks集合,如果有需要可以覆盖。这个块集合里面文档的结构非常简单:

_id:标志唯一

n:表示块的编号,也就是这个块在原文件中的顺序号

data:包含组成文件块的二进制数据

files_id: 包含这个块元数据的文件文档的"_id"

使用mongofile来操作GridFS:

命令说明 

put:将文件系统中的一个文件添加到GridFS

list:会把所有添加到GridFS中的文件列出来

get:put的反向操作

在mongodb工具中查看GridFS

MongoDB_GridFS_存储文件

当神已无能为力,那便是魔渡众生