https://www.runoob.com/mongodb/mongodb-gridfs.html
https://blog.csdn.net/wzy0623/article/details/82894835
PS D:\program\mongodb4.2.4\bin> ./mongofiles put E:\hh\lyai\doc\测试\stack.txt
2020-03-14T14:35:02.111+0800 connected to: mongodb://localhost/
2020-03-14T14:35:03.352+0800 added gridFile: E:\hh\lyai\doc\测试\stack.txt
PS D:\program\mongodb4.2.4\bin> .\mongofiles.exe search stack
2020-03-14T14:37:44.987+0800 connected to: mongodb://localhost/
E:\hh\lyai\doc\测试\stack.txt 4072
PS D:\program\mongodb4.2.4\bin> .\mongofiles.exe get 4072
2020-03-14T14:38:21.633+0800 connected to: mongodb://localhost/
2020-03-14T14:38:21.666+0800 Failed: no such file with name: 4072
PS D:\program\mongodb4.2.4\bin> .\mongofiles.exe get E:\hh\lyai\doc\测试\stack.txt
2020-03-14T14:38:40.165+0800 connected to: mongodb://localhost/
2020-03-14T14:38:40.323+0800 finished writing to E:\hh\lyai\doc\测试\stack.txt
PS D:\program\mongodb4.2.4\bin> .\mongofiles.exe get E:\hh\lyai\doc\测试\stack.txt
2020-03-14T14:39:26.901+0800 connected to: mongodb://localhost/
2020-03-14T14:39:26.955+0800 finished writing to E:\hh\lyai\doc\测试\stack.txt
#上传指定文件名
Put: 从"C:\Users\ChangQing\Pictures\a.jpg"上传文件a.jpg,存在数据库mytest中,命名为"changqing"
mongofiles -d gridfs -l "C:\Users\ChangQing\Pictures\a.jpg" put "changqing"
mongofiles -d gridfs put "C:\Users\ChangQing\Pictures\a.jpg" //此种方式上传文件名即为C:\Users\ChangQing\Pictures\a.jpg
Get: 从数据库gridfs下载文件"changqing"至"C:\Users\ChangQing\Pictures\a\a.jpg"
mongofiles -d gridfs -l "C:\Users\ChangQing\Pictures\a\a.jpg" get "changqing"
List: 查看文件列表
mongofiles -d gridfs list
Search: 查找名为"changqing"的文件
mongofiles -d gridfs search "changqing"
Delete:删除名为"changqing"的文件
mongofiles -d gridfs delete "changqing"
其中-d指定数据库实例,-l[--local]:上传/下载时的本地文件名,默认与gridfs上的文件名一致。
#下载到指定目录
./mongofiles -d zzz -l ./z1.txt get E:\hh\lyai\doc\测试\stack.txt
2020-03-14T15:51:58.499+0800 connected to: mongodb://localhost/
2020-03-14T15:51:58.539+0800 finished writing to ./z1.txt
数据库查询文件
.\mongo.exe
use zzz
db.fs.files.find()
{ "_id" : ObjectId("5e6c8806c0e236a4a69ee765"), "length" : NumberLong(4072), "chunkSize" : 261120, "uploadDate" : ISODate("2020-03-14T07:30:16.014Z"), "filename" : "E:\\hh\\lyai\\doc\\测试\\stack.txt", "metadata" : { } }
# fs.chunks 集合中所有的区块
db.fs.chunks.find({files_id:ObjectId('5e6c8806c0e236a4a69ee765')})
gridFS简介
GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
http://www.mongodb.org/display/DOCS/GridFS
http://www.mongodb.org/display/DOCS/GridFS+Specification
GridFS使用
MongoDB提供了一个命令行工具mongofiles可以来处理GridFS,在bin目录下。
列出所有文件:
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类型,默认会忽略
使用MongoVUE来查看,管理GridFS
MongoVUE地址:http://www.mongovue.com/
MongoVUE是个免费软件,但超过15天后功能受限。可以通过删除以下注册表项来解除限制:
[HKEY_CURRENT_USER\Software\Classes\CLSID{B1159E65-821C3-21C5-CE21-34A484D54444}\4FF78130]
把这个项下的值全删掉就可以了。