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 搭建文件存储的方案
用云的话,节省你开发成本,快速上线,数据比较安全.缺点是一旦用了他们的,形成习惯以后,数据想迁移就会比较麻烦,你会越来越依赖,而且规模上去以后价格并不低.早年自己做的话,你需要实现分布式文件系统,这个 ...
随机推荐
- keras & tensorflow 列出可用GPU 和 切换CPU & GPU
列出可用GPU from tensorflow.python.client import device_lib print(device_lib.list_local_devices()) from ...
- Android为TV端助力 集成第三方播放器,实现全屏播放
下面这Demo链接:Android实现全屏播放,各种格式支持直播,点播,不收费!
- spring学习总结——高级装配学习一(profile与@Conditional)
前言: 在上一章装配Bean中,我们看到了一些最为核心的bean装配技术.你可能会发现上一章学到的知识有很大的用处.但是,bean装配所涉及的领域并不仅仅局限于上一章 所学习到的内容.Spring提供 ...
- SQLServer之创建表值函数
表值函数创建注意事项 用户定义表值函数返回 table 数据类型. 对于内联表值函数,没有函数主体,表是单个 SELECT 语句的结果集. 表值函数主要用于数据计算出来返回结果集. 使用SSMS数据库 ...
- 我现在有个表,里面有100个不同的单词,每个单词对应有大概20个词组,我想通过sql,每个单词随机获取对应的3个词组,请问怎么写可以实现?
闲来无事刷技术论坛,看到一个这样的问题: 我现在有个表,里面有100个不同的单词,每个单词对应有大概20个词组,我想通过sql,每个单词随机获取对应的3个词组,请问怎么写可以实现? 感觉题材很新颖,角 ...
- Flex Builder 4.6切换语言
一.修改Flex builder 1.用无格式编辑器打开FlashBuilder.ini 2.把zh_CN替换成"en_US" 二.修改MyEclipse插件 1.用无格式编辑器打 ...
- crosstool-ng-1.22.0搭建开发环境
Ubuntu16.04无法安装libtool,只能在Ubuntu14.04以下版本安装. cp 下载/crosstool-ng-1.22.0.tar.bz2 /home/hou/ tar -x ...
- LeetCode算法题-Degree of an Array(Java实现)
这是悦乐书的第294次更新,第312篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第162题(顺位题号是697).给定一个由正整数组成的非空数组,该数组的度数被定义为任意 ...
- JavaScript对象类型之创建对象
引言 JavaScript中,可以通过对象直接量,关键字new(ECMAScript 5中的)Object.create(),函数来创建对象. 对象直接量 JavaScript中使用对象直接量来创建对 ...
- 【Python 05】Python开发环境搭建
Python3安装和使用 1.安装 Python管方下载地址 选择Customize installation安装,并且勾选Add Python 3.X to PATH. 勾选Documentatio ...