文件的存储GridFS
1.存储路径---》可以理解就是存储路径,然后在通过路径来获取文件
将文件放在本地路径(网络路径)下,然后数据库中存储该文件的查找路径
db.log.insert({filename:"python.xmind",size:120,path:"/hoem/zengsf/net/mongoDB"})
优点 : 节省数据库空间
缺点 : 当数据或者文件位置发生变化时文件即丢失
2. 将文件转换为二进制,存储文件本身
优点 : 数据库和文件绑定,数据库在文件即在
缺点 : 占用数据库空间大,存取效率低
mongodb存储文件本身
*如果是小文件建议转换二进制直接插入
* 如果是大文件建议使用GridFS方案存储 >16M
3.GridFS存储大文件
FridFS方法:
在mongodb中以两个集合配合的方法存储文件
fs.files :存储文件相关信息(文件名,文件类型)
fs.chunks : 分块存储文件实际内容
存储文件命令:
mongofiles -d dbname put file
dbname :要将文件存入的数据库,如果不存在自动创建
file:要保存的文件
提取文件命令:
mongofiles -d dbname get file
优点 : 存储方便,提供较好的命令支持和编程接口
缺点 : 存取效率低
文件的存储GridFS的更多相关文章
- 昕有灵犀-xyFS私有文件云存储OSS服务
本工程为本人开发的开源项目,地址: https://gitee.com/475660/xyFS 介绍: 一站式企业私有文件服务.针对软件开发时提供的文件存储系统,对文件上传.下载.分类.分组.审计.统 ...
- 如何安放你的大文件,MongoDB GridFS可以帮助你
1 简介 众所周知(你不知也当你知),MongoDB是以文档(Document)组织数据的.除了常用于存储Json数据,它也是可以存储普通文件的.我们可以把一些文件以BSOON的格式存入MongoDB ...
- plist文件、NSUserDefault 对文件进行存储的类、json格式解析
========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...
- [IT新应用]存储入门-文件级存储及块级别存储的选择
http://www.techrepublic.com/blog/the-enterprise-cloud/block-level-storage-vs-file-level-storage-a-co ...
- Kafka文件的存储机制
Kafka文件的存储机制 同一个topic下有多个不同的partition,每个partition为一个目录,partition命名的规则是topic的名称加上一个序号,序号从0开始. 每一个part ...
- js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中
ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...
- 音视频学习系列第(三)篇---wav文件的存储和解析
音视频系列 什么是wav wav是一种无损的音频文件格式,wav文件有两部分,第一部分是文件头,记录一些重要的参数信息,如音频的采样率,通道数,数据位宽,第二部分是数据部分,数据部分可以是PCM,也可 ...
- 使用matlab批量处理图像后在指定文件夹存储
使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jp ...
- numpy中文件的存储和读取-嵩天老师笔记
numpy中csv文件的存储和读取 CSV文件:(Comma‐Separated Value, 逗号分隔值) 一维和二维数组 存储 np.savetxt(frame,array,fmt='%.18e' ...
随机推荐
- Spring AOP之使用注解创建切面
上节中我们已经定义了Performance接口,他是切面中的切点的一个目标对象.那么现在就让我们使用AspectJ注解来定义切面吧. 1.定义切面 下面我们就来定义一场舞台剧中观众的切面类Audien ...
- Codeforces 534B - Covered Path
534B - Covered Path 思路:贪心,每一秒取尽可能大并且可以达到的速度. 画张图吧,不解释了: 代码: #include<bits/stdc++.h> using name ...
- OpenGL入门程序三:点、线、面的绘制
1.点: void TestPoint() { //点的大小默认为一个像素,通过下面的函数可以设置一点的大小 glPointSize(50.0f); glBegin(GL_POINTS); glVer ...
- robot脚本编写规范
一个robot脚本主要有四部分组成: ***settings*** 设置 ***keywords*** 关键词 ***variables*** 变量 ***test cases*** 测试用例 一般, ...
- Java实现日历小程序【代码】
这个没啥难点的,主要是界面设计吧 界面就是这个样子 运行时请在src同目录下放上我女神的照片 -----------------------------------代码如下-------------- ...
- 新概念 Lesson 1 Excuse me!
xu言: 从哪里跌倒,就从哪里爬起来.希望这次真的能够坚持下去... standard ['stændəd] pronunciation [prə,nʌnsɪ'eɪʃ(ə)n] basic ...
- Android之MVC模式的使用
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...
- python-day9-循环嵌套
练习:99乘法表: # for line in range(1,10): #line=2# for row in range(1,line+1):# print('%s*%s=%s' %(line,r ...
- ubuntu 用户和root权限转换
1,用户权限要转换为root 输入:sudo su 或者sudo -i 然后按照提示输入相应的密码你就可以转化为root用户了. 2,root权限切换成用户权限 输入:su 如果是服务器那就输 ...
- POJ-2096 Collecting Bugs (概率DP求期望)
题目大意:有n种bug,m个程序,小明每天能找到一个bug.每次bug出现的种类和所在程序都是等机会均等的,并且默认为bug的数目无限多.如果要使每种bug都至少找到一个并且每个程序中都至少找到一个b ...