存儲路徑 僅存儲文件路徑, 本質爲 字符串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 ] } >