第33章:MongoDB-索引--GridFS存储文件
GridFS是MongoDB用来存储大型二进制文件的一种存储机制。特别适合用在存储一些不常改变,但是经常需要连续访问的大文件的情况。
1:能够简化技术栈,如果已经使用了MongoDB,那么使用GridFS,就不需要其它独立的存储工具了
2:GridFS会自动平衡已有的复制,或者为MongoDB设置的自动分片,所以对文件存储做故障转移或者是横向扩展会更容易
3:GridFS的功能不错,能自动解决一些其他文件系统遇到的问题,如在同一个目录下存储大量的文件
1:性能较低,不如直接访问文件系统快
2:无法修改文档,如果要修改GridFS里面的文档,只能是先删除再添加
最简单的就是使用自带的mongofiles工具。
1:查看文件列表:mogofiles list
2:上传文件: mogofiles put 文件路径和文件名
3:下载文件: mogofiles get 文件名
4:查找文件: mogofiles search XXX,查找所有文件名中包含XXX的文件mogofiles list XXX ,查找所有文件名以XXX开头的文件
3:删除文件: mogofiles delete 文件名
GridFS会将大文件分割为多个比较大的块,将每个快作为独立的文档进行存储,另外用一个文档来将这些块组织到一起,并存储该文件的元信息。
GridFS中的块被存储到专用的集合中,默认是fs.chunks,可以通过db.fs.chunks.find();查看这个集合,里面的结构非常简单,说明如下:
1:files_id:块所属文件的元信息
2:n:块在文件中的相对位置
3:data:块所包含的二进制数据
GridFS中每个文件的元信息被存储到单独的集合中,默认是fs.files,,可以通过db.fs.files.find();查看这个集合里面的结构非常简单,说明如下:
1:_id:文件唯一的id,就是前面的files_id
2:length:文件包含的字节数
3:chunkSize:组成文件的每个快的大小,单位是字节,这个值默认是256k
4:uploadDate:文件被上传到GridFS的日期
5:md5:文件内容的md5校验值
第33章:MongoDB-索引--GridFS存储文件的更多相关文章
- MongoDB学习笔记(二)--Capped集合 && GridFS存储文件
Capped集合 Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...
- MongoDB GridFS 存储文件
使用MongoDB的GridFS方式. CSDN: https://blog.csdn.net/qq_32657967/article/details/81534259官方文档: https://do ...
- 学习MongoDB 八: MongoDB索引(索引限制条件)(二)
一.简介 我们上一篇介绍了索引基本操作,通过db.collection.createIndex(keys, options)语法创建索引,我们继续介绍地理空间索引.索引的限制,使我们在MongoDB时 ...
- MongoDB的Spring-data-mongodb集成(Win10 x64) 第一章 - MongoDB安装与简单命令
这是MongoDB系列的第一章,作者将持续更新. 1.下载 https://www.mongodb.com/download-center#community 2.安装与配置 有关安装的任何困难请点击 ...
- [DataBase] MongoDB (7) MongoDB 索引
MongoDB 索引 1. 建立索引 唯一索引db.passport.ensureIndex( {"loginname": 1}, {"unique": tru ...
- MongoDB索引介绍
MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致.由于集合中的键(字段)可以是普通数据类型,也可以是子文档.MongoDB可以在各种类型的键上创建索 ...
- MongoDB(索引及C#如何操作MongoDB)(转载)
MongoDB(索引及C如何操作MongoDB) 索引总概况 db.test.ensureIndex({"username":1})//创建索引 db.test.ensureInd ...
- MongoDB索引(一)
原文地址 一.介绍 我们已经很清楚索引会提高查询效率.如果没有索引,MongoDB必须对全部集合进行扫描,即,扫描集合中每条文档以选择那些符合查询条件的文档.对查询来说如果存在合适的索引,则Mongo ...
- MongoDB 索引篇
MongoDB 索引篇 索引的简介 索引可以加快查询的速度,但是过多的索引或者规范不好的索引也会影响到查询的速度.且添加索引之后的对文档的删除,修改会比以前速度慢.因为在进行修改的时候会对索引进行更新 ...
- 【RL-TCPnet网络教程】第33章 SMTP简单邮件传输协议基础知识
第33章 SMTP简单邮件传输协议基础知识 本章节为大家讲解SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)的基础知识,方便后面章节的实战操作. (本 ...
随机推荐
- C语言中的作用域,链接属性和存储类型
作用域 当变量在程序的某个部分被声明的时候,他只有在程序的一定渔区才能被访问,编译器可以确认4种不同类型的作用域:文件作用域,函数作用域,代码块作用域和原型作用域 1.代码块作用域:位于一对花括号之间 ...
- python中定义的颜色
平时学习工作中,我们经常会接触到一些大佬写的Python实用工具,运行起来总会显示出五颜六色的背景,相关的定义在matplotlib模块中,为方便使用,这里给大家展示一下在这个模块中都定义了哪些选颜色 ...
- web.xml的加载过程配置详解
一:web.xml加载过程 简单说一下,web.xml的加载过程.当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等).首先会去读取web.xml配置文件里的配置,当这一步骤没有 ...
- py库: matplotlib
Matplotlib是一个Python 2D绘图库,可以跨平台生成各种硬拷贝格式和交互式环境的出版品质量图. http://matplotlib.org/ matplotlib官网 http://py ...
- python大法好——异常
---恢复内容开始--- Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Pyth ...
- leetcode22
public class Solution { public IList<string> GenerateParenthesis(int n) { List<string> l ...
- leetcode72
class Solution { private: ][]; public: int minDistance(string word1, string word2) { int len1 = word ...
- web和app的简单测试区别和工具介绍
首先说一下我对Web自动化测试与CS自动化测试的认识.从宏观对比都是通过脚本自动化完成功能的验证,区别不大.Web测试更为显著的浏览器兼容性.安全,以及与Web技术相关的表单测试.链接测试等,其实都是 ...
- 使用jQuery+huandlebars中with应用及with+this应用
兼容ie8(很实用,复制过来,仅供技术参考,更详细内容请看源地址:http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471227.html) w ...
- Spring再接触 id与name
事实上 <bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl"> </bean> 也可以 ...