存储路径 仅存储文件路径, 本质为 字符串shell
优势: 节省空间 缺点: 不真实存储在数据库, 文件或者数据库发送变更须要修改数据库
存储文件自己 将文件转换成 二进制 存储在数据库数据库
优势: 文件在数据库中, 不容易丢失 缺点: 占用数据库空间较多, 文件存取效率不高
目的 更好的存取 MongoDB 中的大文件 ( 超过 16 m 就被认为大文件 )spa
1. 在 MongoDB 中建立两个集合, 共同存储文件
2. fs.files 集合用于存储文件信息, 为每一个文件创建一个信息文档
3. fs.chunks 集合中创建与 fs.files 集合对应文件文档的关联, 将文件分块, 以 2 进制格式存储
优势: 存储方便, 提供了较好的存储命令
缺点: 读写效率较低, 不建议存储小文件
命令code
mongofiles -d dbname put file
dbname 不存在的时候回自动建立blog
实例ip
mongofiles -d dbname put dict_demo/e_dict.txt
> db.fs.files.find() { "chunkSize" : 261120, "uploadDate" : ISODate("2019-03-04T03:23:28.375Z"), "length" : 16640891, "md5" : "01b9e949829b44970d527425e8e93b12", "filename" : "dict_demo/e_dict.txt" }
> db.fs.chunks.find() {"_id": ..., "files_id":....., 关联 files 表的ID "n":38, "data":BinDate(0,"ZlcmlvciB0byB0aGUgb.....HVzdSBpbmZ0aW1l") } Type "it" for more
mongofiles -d dbname get file
实例md5
tarena@tedu:~$ mongofiles -d grid get dict_demo/e_dict.txt 2019-03-04T11:41:43.911+0800 connected to: localhost finished writing to dict_demo/e_dict.txt tarena@tedu:~$
界面支持 基本的 JS 程序
经过 JS 也能够处理一些简单的逻辑问题ci
> var cursor = db.class.find() > cursor.next() { "_id" : ObjectId("5c775857c69c81d07212f58a"), "name" : "yang", "age" : 6, "score" : [ 98, 56, 32 ] } >