mongoDB 大文件存储方案, JS 支持展示
文件存储
方式分类
传统方式
存储路径 仅存储文件路径, 本质为 字符串
- 优点: 节省空间
- 缺点: 不真实存储在数据库, 文件或者数据库发送变动需要修改数据库
存储文件本身 将文件转换成 二进制 存储在数据库
- 优点: 文件在数据库中, 不容易丢失
- 缺点: 占用数据库空间较多, 文件存取效率不高
GridFS 文件存储方案
目的 更好的存取 MongoDB 中的大文件 ( 超过 16 m 就被认为大文件 )
- 1. 在 MongoDB 中创建两个集合, 共同存储文件
- 2. fs.files 集合用于存储文件信息, 为每个文件建立一个信息文档
- 3. fs.chunks 集合中建立与 fs.files 集合对应文件文档的关联, 将文件分块, 以 2 进制格式存储
- 优点: 存储方便, 提供了较好的存储命令
- 缺点: 读写效率较低, 不建议存储小文件
存取方法
存储
命令
- mongofiles -d dbname put file
dbname 不存在的时候回自动创建
实例
- mongofiles -d dbname put dict_demo/e_dict.txt
- > db.fs.files.find()
- { "chunkSize" : 261120,
- "uploadDate" : ISODate("2019-03-04T03:23:28.375Z"),
- "length" : 16640891,
- "md5" : "01b9e949829b44970d527425e8e93b12",
- "filename" : "dict_demo/e_dict.txt" }
- > db.fs.chunks.find()
- {"_id": ...,
- "files_id":....., 关联 files 表的ID
- "n":38,
- "data":BinDate(0,"ZlcmlvciB0byB0aGUgb.....HVzdSBpbmZ0aW1l") }
- Type "it" for more
提取
命令
- mongofiles -d dbname get file
实例
- tarena@tedu:~$ mongofiles -d grid get dict_demo/e_dict.txt
- 2019-03-04T11:41:43.911+0800 connected to: localhost
- finished writing to dict_demo/e_dict.txt
- tarena@tedu:~$
mongo shell 对 JavaScript 的支持
界面支持 基本的 JS 程序
通过 JS 也可以处理一些简单的逻辑问题
- > var cursor = db.class.find()
- > cursor.next()
- {
- "_id" : ObjectId("5c775857c69c81d07212f58a"),
- "name" : "yang",
- "age" : 6,
- "score" : [
- 98,
- 56,
- 32
- ]
- }
- >
mongoDB 大文件存储方案, JS 支持展示的更多相关文章
- MongoDb gridfs-ngnix文件存储方案
在各类系统应用服务端开发中,我们经常会遇到文件存储的问题. 常见的磁盘文件系统,DBMS传统文件流存储.今天我们看一下基于NoSQL数据库MongoDb的存储方案.笔者环境 以CentOS ...
- MongoDb gridfs-ngnix文件存储方案 - 图片
http://www.cnblogs.com/wintersun/p/4622205.html 在各类系统应用服务端开发中,我们经常会遇到文件存储的问题. 常见的磁盘文件系统,DBMS传统文件流存储. ...
- Hadoop小文件存储方案
原文地址:https://www.cnblogs.com/ballwql/p/8944025.html HDFS总体架构 在介绍文件存储方案之前,我觉得有必要先介绍下关于HDFS存储架构方面的一些知识 ...
- GitLab 之 Git LFS 大文件存储的配置
转载自:https://cloud.tencent.com/developer/article/1010589 1.Git LFS 介绍 Git 大文件存储(Large File Storage,简称 ...
- Sqlserver 高并发和大数据存储方案
Sqlserver 高并发和大数据存储方案 随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战.下面分享下对实际10万+峰值的平台的数据库优化方案.与大家一起讨论,互相学习提高! ...
- FastDFS安装(mac)|文件存储方案
目录 FastDFS安装(mac)|文件存储方案 1 FastDFS介绍 1.1 FastDFS架构 1.2 工作原理实例介绍 1.3 FastDFS上传和下载流程 1.4 FastDFS文件索引 2 ...
- Nginx|构建简单的文件服务器(mac) 续-FastDFS安装(mac)|文件存储方案
目录 Nginx|构建简单的文件服务器(mac) 1 所需安装包 2 安装fastdfs-nginx-module-master 3 安装Nginx Nginx|构建简单的文件服务器(mac) 续上文 ...
- mongo 固定集合,大文件存储,简单优化 + 三招解决MongoDB的磁盘IO问题
1.固定集合 > db.createCollection(, max:});//固定集合 必须 显式创建. 设置capped为true, 集合总大小xxx字节, [集合中json个数max] { ...
- MongoDB 搭建文件存储的方案
用云的话,节省你开发成本,快速上线,数据比较安全.缺点是一旦用了他们的,形成习惯以后,数据想迁移就会比较麻烦,你会越来越依赖,而且规模上去以后价格并不低.早年自己做的话,你需要实现分布式文件系统,这个 ...
随机推荐
- Arcgis for js开发之直线、圆、箭头、多边形、集结地等绘制方法
p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...
- SQL Server 数据库调整表中列的顺序操作
SQL Server 数据库中表一旦创建,我们不建议擅自调整列的顺序,特别是对应的应用系统已经上线,因为部分开发人员,不一定在代码中指明了列名.表是否可以调整列的顺序,其实可以自主设置,我们建议在安装 ...
- iOS证书配置与管理
证书: 证书: 命名 特点 团队管理 开发证书 iOS Development 不与App ID对应 表示拥有开发应用的资格 一般只需一个,通过导出p12文件,分发给其他电脑安装: 生产证书 iOS ...
- varnish学习以及CDN的原理
一.varnish学习Web Page Cache: squid --> varnish 程序的运行具有局部性特征: 时间局部性:一个数据被访问过之后,可能很快会被再次访问到: 空间局部性:一个 ...
- 进程命令(tasklist)
TaskList命令: // 描述: 显示本地或远程计算机上正在运行的进程列表信息. // 语法: tasklist [/s <computer> [ /u [<domain> ...
- 持续代码质量管理-SonarQube-7.3简单使用
安装了SonarQube以及Sonar Scanner之后,就需要那代码检测了.当然为了方便我们使用已有现成的demo,知道到对应的git地址下载即可. 1. sonar-examples下载 htt ...
- 【笔记】Python集成开发环境——PyCharm 2018.3下载、注册、帮助文档
[博客导航] [Python导航] 前言 使用好的开发环境将有效提高编程效率,在Python使用上我是小白,所以特意请教了从事语言处理的成同学,告知我,推荐使用Pycharm和IntelliJ. 目前 ...
- Docker的使用初探(一):常用指令说明
目录 Docker的使用初探(一):常用指令说明 为什么要用Docker Docker的安装与简单使用 国内镜像加速 常用指令 Docker的使用初探(一):常用指令说明 前几个星期实践的了,再不记录 ...
- 初学Django项目可能会遇到的问题
1. 出现莫名其妙的 app01 我项目中的app名字并不是app01,可是运行python manage.py makemigrations的时候总是提示app01不是已安装的app Applyin ...
- RabbitMQ远程执行任务RPC。
如果想发一条命令给远程机器,再把结果返回 这种模式叫RPC:远程过程调用 发送方将发送的消息放在一个queue里,由接收方取. 接收方再把执行结果放在另外一个queue里,由发送方取 实际上,发送方把 ...