mongo--GridFS
GridFS是一种将大型文件存储在MongoDB的文件规范:
- 数据库支持以BSON格式保存二进制对象。 但是MongoDB中BSON对象最大不能超过4MB。
- GridFS 规范提供了一种透明的机制,可以将一个大文件分割成为多个较小的文档。
- 为实现这点,该规范指定了一个将文件分块的标准。每个文件都将在文件集合对象中保存一个元数据对象,一个或多个块对象可被组合保存在一个块集合中。
- 文件如何被分块保存的细节可以参看GridFS Specification。
- 列出所有文件:
- mongofiles list
- 上传一个文件:
- mongofiles put xxx.txt
- 下载一个文件:
- mongofiles get xxx.txt
- 查找文件:
- mongofiles search xxx//会查找所有文件名中包含“xxx”的文件
- mongofiles list xxx //会查找所有文件名以“xxx”为前缀的文件
- 参数说明:
- –d 指定数据库 ,默认是fs,Mongofiles list –d testGridfs
- -u –p 指定用户名,密码
- -h指定主机
- -port 指定主机端口
- -c 指定集合名,默认是fs
- -t 指定文件的MIME类型,默认会忽略
- {
- "_id" : ObjectId("4f4608844f9b855c6c35e298"),//唯一id,可以是用户自定义的类型
- "filename" : "CPU.txt", //文件名
- "length" : 778, //文件长度
- "chunkSize" : 262144, //chunk的大小
- "uploadDate" : ISODate("2012-02-23T09:36:04.593Z"), //上传时间
- "md5" : "e2c789b036cfb3b848ae39a24e795ca6", //文件的md5值
- "contentType" : "text/plain" //文件的MIME类型
- "meta" : null //文件的其它信息,默认是没有”meta”这个key,用户可以自己定义为任意BSON对象
- }
- {
- "_id" : ObjectId("4f4608844f9b855c6c35e299"), //chunk的id
- "files_id" : ObjectId("4f4608844f9b855c6c35e298"), //文件的id,对应fs.files中的对象,相当于fs.files集合的外键
- "n" : 0, //文件的第几个chunk块,如果文件大于chunksize的话,会被分割成多个chunk块
- "data" : BinData(0,"QGV...") //文件的二进制数据,这里省略了具体内容
- }
推荐阅读
- 热闹中的孤独
- 我要做大厨
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 爱就是希望你好好活着
- 太平之莲
- 知识
- 叙述作文
- 时间老了
- 清明,是追思、是传承、是感恩。
- 我错了,余生不再打扰