java操作mongodb文件系统的几个类

一、文件在数据库中的保存结构

1、文件在MongoDB中,分两个集合保存,.files集合保存文件的基本信息,.chunks保存文件的内容,当文件的内容大于每个chunk的大小,就会进行分块保存,用n字段标示分块序号。

1).files集合

保存文件的基本信息,包括:

filename:文件名

length:文件大小

chunkSizechunks分块的大小

contentType:文件类型

md5md5

uploadDate:保存时间

aliases:别名

2).chunks集合

保存文件的内容,包括:

files_id:文件基本信息在.files集合中的编号

nchunks的序号,从0开始

data:文件内容

二、JAVA驱动中各类的作用

1、abstract class GridFSFile .files集合的映射

1)是.files集合的映射

2)包括了对.files集合中各个字段的管理

3)提供了对.files集合进行save操作的方法save()

2、GridFSInputFile extends GridFSFile 把文件存到数据库的类

1)继承了.files集合相关内容的管理和操作

2)提供了对.chunks集合进行save操作的方法saveChunks()

3)提供了对.files.chunks两个集合级联save操作方法save()

4)保存一个完整的文件到数据库中,使用的是GridFSInputFilesave()方法

3、GridFSDBFile extends GridFSFile  从数据库获取文件内容的类

1)继承了.files集合相关内容

2)提供了根据.files集合中的字段_id.chunks集合中获取对应文件的方法

3)根据2)中的接口,还提供了把文件输出到硬盘、输出和输入流的方法

4、GridFS

1)负责和两个集合进行链接

2)可以对两个集合的命名空间进行设置,默认是fsfs.files,fs.chunks

3)可以创建能够保存文件到数据的类GridFSInputFile的实例:createFile系列方法

4)可以根据条件查询,并封装成GridFSDBFile集合或实例:findfindOne系列方法

5)可以删除文件(会级联删除数据库中两个集合中对应的数据)remove系列方

三、使用

1、保存

使用GridFScreatFile创建GridFSInputFile实例,通过该实例的save方法保存文件

2、获取

使用GridFSfindfindOne等方法获取GridFSDBFile的集合或实例,使用GridFSDBFile对象的writeTo系列方法把文件输出到硬盘或者输出流中,或者通过getInputStream方法获取一个InputStream

你可能感兴趣的:(MongoDB)