一、概述
   GridFS是MongoDB的一种存储机制,用来存储大型二进制文件。
优点:
1.使用GridFS能够简化你的栈。如果已经在使用MongoDB,那么可以使用GridFS来代替独立的文件存储工具
2.GridFS会自动平衡已有的复制或者为MongoDB设置的自动分片,所以对文件存储做故障转移或者横向扩展会更容易。
3.当用于存储用户上传的文件时,GridFS可以比较从容地解决其他一些文件系统可能会遇到的问题。
4.在GridFS中,文件存储的集中度会非常高,因为MongoDB是以2G为单位来分配数据文件。
缺点:
1.GridFS的性能比较低:从MongoDB中访问文件,不如直接从文件系统中访问文件速度快
2.如果要修改GridFS上的文档,只能先将已有文件删除,然后再将整个文档重新保存。
   GridFS使用最简单的方式是使用mongofiles工具,所有Mongo DB发行版中都包含了mongofiles这个工具,可以用它在GridFS中上传文件、下载文件、查看文件列表、搜索文件、以及删除文件。下面就为大家演示一下。
二、代码演示。
2.1上传一个文件
mongofiles -d foobar -l "E:\a.txt" put "a.txt"
2.2查看文件列表
db.fs.chunks.find() 和db.fs.files.find() 存储了文件系统的所有文件信息
2.3查看所有文件
mongofiles -d foobar list
2.4删除存在的文件
mongofiles -d foobar delete 'a.txt'
三、总结。
GridFS系统为我们再用MongoDB存储很大的数据文件提供了一个很高效的系统

Java从入门到精通——数据库篇Mongo DB GridFS文件系统的更多相关文章

  1. Java从入门到精通——数据库篇Mongo DB 导出,导入,备份

    一.概述    本篇博客为大家讲述一下Mongo DB是如何导入导出数据,还有就是备份数据的.    在下面操作的时候需要把Mongo DB的服务端打开才能操作. 二.导出.    MongoDB的导 ...

  2. Java从入门到精通——数据库篇Mongo DB 安装启动及配置详解

    一.概述     Mongo DB 下载下来以后我们应该如何去安装启动和配置才能使用Mongo DB,本篇博客就给大家讲述一下Mongo DB的安装启动及配置详解. 二.安装 1.下载Mongo DB ...

  3. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作

    在Java中对Oracle数据库的操作分为两种:一.查询.二.非查询. 下面是我对其进行总结: 一.查询数据 /** * 根据用户代码查询 * @param userId * @return 如果存在 ...

  4. Java从入门到精通——数据库篇之OJDBC版本区别

    classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别,之间的差异 在使用Oracle JDBC驱动时,有些问题你是不是通过替换不同版本的Oracle  ...

  5. Java从入门到精通——数据库篇Oracle 11g服务详解

    装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...

  6. Java从入门到精通——基础篇之JSTL标签

    一.语言基础 EL(Expression Language)表达式,目的:为了使JSP写起来更加简单.提供了在 JSP 中简化表达式的方法. 二.分类 核心标签库:提供条件判断.属性访问.URL处理及 ...

  7. Java从入门到精通——基础篇之Servlet与JSP的区别

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  8. Java从入门到精通——技巧篇之利用dom4j取出XML文件中的数据

    在我们做项目的时候会经常用到XML文件用来配置系统,XML让系统更加的具有了灵活性,Java如何从XML中取出我们想要的数据呢?下面是我利用DOM4J来实现取出XML文件中的数据. XML文件 < ...

  9. Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步

    Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步 一.概述     PV操作是对信号量进行的操作.     进程同步是指在并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消 ...

随机推荐

  1. 微信小程序 没有找到node_modules目录 ,小程序引入vant框架报错。

    如果大家是按照官网的引入方法,是否报错如图 不着急,大家就试试我的方法吧!两步走完美搞定! 第一步: 在小程序顶部点击设置->项目设置,会弹出下面的窗口.大家把使用npm模块勾上对勾. 第二步: ...

  2. stl容器学习——queue,stack,list与string

    目录 头文件 string 目录部分 1.string的定义及初始化 ① 用一个字符串给另一个字符串赋值 ②用字符串常量对字符串进行赋值 ③ 用n个相同的字符对字符串赋值 2.string的运算符及比 ...

  3. 洛谷 P2053 [SCOI2007]修车(最小费用最大流)

    题解 最小费用最大流 n和m是反着的 首先, \[ ans = \sum{cost[i][j]}*k \] 其中,\(k\)为它在当前技术人员那里,排倒数第\(k\)个修 我们可以对于每个技术人员进行 ...

  4. HTML 标记大全参考手册

    1.文件结构 文件类型 <HTML></HTML> (放在文档的开头与结尾) 文件主题 <TITLE></TITLE> (必须放在「文头」区块内) 文头 ...

  5. 通过shell处理多行数据

    ### 源文件 cat > tmpb <<'EOF' dbname:db_a,start_time::: query_end_time:::,query_total_time:,da ...

  6. Ubuntu中搭建git

    1.配置用户名和邮箱 git config --global user.name "xiaoming" git config --global user.email "x ...

  7. linux 内存介绍

    linux用free -m 查看linux内存使用情况 具体参数如下: Mem:内存的使用情况总览表. totel:机器总的物理内存 单位为:M used:用掉的内存. free:空闲的物理内存. 物 ...

  8. Fiddler使用二(Fiddler抓取HTTP请求)

    参考:http://blog.csdn.net/ohmygirl/article/details/17849983 Fiddler使用一中已经介绍了Fiddler的原理和软件界面.本文主要针对Fidd ...

  9. chrome浏览器开发者工具(一)

    一.Elements 在Element中主要分两块大的部分:HTML结构面板和操作dom样式.结构.时间的显示面板 二.Network Network是一个监控当前网页所有的http请求的面版,它主体 ...

  10. Class and Instance Variables In Ruby

    https://github.com/unixc3t/mydoc/blob/master/blog/caiv.md