Mongodb GridFS

参考

MongoDB权威指南(第2版)

Mongodb Docs

前言

Mongodb提供了一个轻量级的文件系统来专门处理超过16MB的文件,这个文件系统叫GridFS,它的使用非常简单,几乎所有的Mongodb驱动程序都提供了GridFS APIGridFS将集合放在一个共享的储存区域,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系统中的文件

比如我将一个含有文本xsscripttxt文件上传到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特别有兴趣,可以参考一下官方文档,里面解释的非常详细以及还有一些很好的例子

文完

文档信息

发表评论

电子邮件地址不会被公开。 必填项已用*标注