MongoDB对图片进行CRUD操作――与JAVA结合(二)

2015-07-24 07:00:42 · 作者: · 浏览: 2
个是"photo.chunks"集合,前者记录了文件名,文件创建时间,文件类型等基本信息;后者分块存储了文件的二进制数据(并支持加密这些二进制数据)。

一个trunk有一个默认的大小,当文件超过这个默认大小后,会把文件分割成多个chunk,再把这些chunk保存到photo.chunks中,最后再把文件信息存入到photo.files中。

在读取文件的时候,先根据查询条件,在photo.files中找到一个合适的记录,得到“_id”的值,再据这个值到photo.chunks中查找所有“files_id”为“_id”的chunk,并按“n”排序,最后依次读取chunk中“data”对象的内容,还原成原来的文件。

说到原理,我在测试的过程中,在保存图片的时候,我需要用的集合名称是photo,在读取和删除图片的时候,我需要用的完整集合名称是photo.files。如果此时我用集合名未photo时,查找不到相关数据。

总结:

MongoDB作为一个NoSql数据库的代表,其实它里面包含的东西还有很多,我所接触到的也只是冰山一角,为以后的MongoDB的学习做一个小小的准备。