参考
前言
Mongodb提供了一个轻量级的文件系统来专门处理超过16MB
的文件,这个文件系统叫GridFS
,它的使用非常简单,几乎所有的Mongodb驱动程序都提供了GridFS API
。GridFS
将集合放在一个共享的储存区域,GridFS
使用两个集合来存储我们存放的数据:
- fs.files:这个集合当中的每一个文档都表示一个文件的信息
- fs.chunks:这个集合中存放实际的数据内容
GridFS
存储的文件无法进行修改,如果要进行修改只能删除修改的文档,然后再将修改完的文档重新保存。
下面讲一下如何使用Mongodb提供的mongodfiles
客户端来操作GridFS
数据:
mongofiles <options> <commands> <filename>
mongofiles命令的组成部分是:
- options:您可以使用一个或多个这些选项来控制其行为mongofiles。
- commands:使用这些命令之一来确定动作mongofiles。
- filename:本地文件系统上的一个文件的名称,也可以是一个GridFS对象。
mongodfiles默认链接到本地127.0.0.1:27017
的数据库上面,如果需要指定数据库和地址需要像下面这样来,然后后面根着需要执行的命令。
mongofiles --host 127.0.0.1 -p 27017 需要执行的命令
常用的命令有四个:
- list:列出数据库GridFS中的文件
- put:将文件系统中的文件上传到GridFS
- get:用于将GridFS中的文件下载到文件系统中
- search:用于搜索GridFS系统中的文件
- delete:用于删除GridFS系统中的文件
比如我将一个含有文本xsscript
的txt
文件上传到GridFS
中:
$ echo "xsscript" > t.txt
$ ./mongofiles put t.txt
connected to: localhost
added file: t.txt
搜索文件:
$ ./mongofiles list
2017-08-09T16:18:06.985+0800 connected to: localhost
t.txt 9
$ ./mongofiles search t
2017-08-09T16:21:42.994+0800 connected to: localhost
t.txt 9
下载文件到当前文件系统中:
$ ./mongofiles get t.txt
删除文件:
$ ./mongofiles delete t.txt
结尾
Mongodb提供的GridFS
系统非常强大,可以根据个人的需求来看待它,并且它的应用范围也很广。目前我就用GridFS
给自己写了一个知识库系统。
如果大家对GridFS
特别有兴趣,可以参考一下官方文档,里面解释的非常详细以及还有一些很好的例子
文完
本文首发于:Mongodb GridFS-伍仪洲的博客
《Mongodb GridFS》留言数:0