【MongoDB学习笔记29】MongoDB的GridFS存储深入-创新互联

GridFS的原理是将大文件分割为多个比较大的块,将每个块作为独立的文档进行存储。

创新互联建站是专业的新建网站建设公司,新建接单;提供网站设计制作、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行新建网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

(1)GridFS中的块会被存贮到专用的集合中,默认为fs.chunks;

(2)除了将文件的每一个块单独存储外,还需要将每个文件块的元信息放入一个文档存储,并将这些文档默认集中在fs.files集合中;

例如将foo.txt文档加入到数据库foo中:

[root@localhost ~]# echo "hello world" >foo.txt    [root@localhost ~]# mongofiles -d foo put foo.txt     connected to: 127.0.0.1     added file: { _id: ObjectId('54b3d62983047a88669bc529'), filename: "foo.txt", chunkSize: 261120, uploadDate: new Date(1421071914003), md5: "6f5902ac237024bdd0c176cb93063dc4", length: 12 }     done!

查看相应的集合:

> show collections   fs.chunks   fs.files   system.indexes   >

查看这个文档:

[root@localhost ~]# mongo foo    MongoDB shell version: 2.6.6     connecting to: foo     > db.fs.chunks.findOne()     {         "_id" : ObjectId("54b51dc15caeb0e1a8722e8d"),         "files_id" : ObjectId("54b51dc0c3ab6ae7c08f6028"),         "n" : 0,         "data" : BinData(0,"aGVsbG8gd29ybGQK")     }     >

files_id:块所属文件的元信息;

n: 块在文件中的相对位置;

data:块所包含的二进制数据;

> db.fs.files.findOne()    {         "_id" : ObjectId("54b51dc0c3ab6ae7c08f6028"),         "filename" : "foo.txt",         "chunkSize" : 261120,         "uploadDate" : ISODate("2015-01-13T13:29:37.525Z"),         "md5" : "6f5902ac237024bdd0c176cb93063dc4",         "length" : 12     }     >

_id:文件的唯一ID,跟文件的每个块中的files_id的值是一致的;

length:文件所包含的字节数;

chunkSize:组成文件的每个块的大小,单位是字节;

updateDate:文件被上传到GridFS的时间;

MD5:文件的MD5值,由服务器计算所得;

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:【MongoDB学习笔记29】MongoDB的GridFS存储深入-创新互联
URL链接:http://cdiso.cn/article/cdhioh.html

其他资讯