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的更多相关文章

  1. 昕有灵犀-xyFS私有文件云存储OSS服务

    本工程为本人开发的开源项目,地址: https://gitee.com/475660/xyFS 介绍: 一站式企业私有文件服务.针对软件开发时提供的文件存储系统,对文件上传.下载.分类.分组.审计.统 ...

  2. 如何安放你的大文件,MongoDB GridFS可以帮助你

    1 简介 众所周知(你不知也当你知),MongoDB是以文档(Document)组织数据的.除了常用于存储Json数据,它也是可以存储普通文件的.我们可以把一些文件以BSOON的格式存入MongoDB ...

  3. plist文件、NSUserDefault 对文件进行存储的类、json格式解析

    ========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...

  4. [IT新应用]存储入门-文件级存储及块级别存储的选择

    http://www.techrepublic.com/blog/the-enterprise-cloud/block-level-storage-vs-file-level-storage-a-co ...

  5. Kafka文件的存储机制

    Kafka文件的存储机制 同一个topic下有多个不同的partition,每个partition为一个目录,partition命名的规则是topic的名称加上一个序号,序号从0开始. 每一个part ...

  6. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  7. 音视频学习系列第(三)篇---wav文件的存储和解析

    音视频系列 什么是wav wav是一种无损的音频文件格式,wav文件有两部分,第一部分是文件头,记录一些重要的参数信息,如音频的采样率,通道数,数据位宽,第二部分是数据部分,数据部分可以是PCM,也可 ...

  8. 使用matlab批量处理图像后在指定文件夹存储

    使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jp ...

  9. numpy中文件的存储和读取-嵩天老师笔记

    numpy中csv文件的存储和读取 CSV文件:(Comma‐Separated Value, 逗号分隔值) 一维和二维数组 存储 np.savetxt(frame,array,fmt='%.18e' ...

随机推荐

  1. Spring AOP之使用注解创建切面

    上节中我们已经定义了Performance接口,他是切面中的切点的一个目标对象.那么现在就让我们使用AspectJ注解来定义切面吧. 1.定义切面 下面我们就来定义一场舞台剧中观众的切面类Audien ...

  2. Codeforces 534B - Covered Path

    534B - Covered Path 思路:贪心,每一秒取尽可能大并且可以达到的速度. 画张图吧,不解释了: 代码: #include<bits/stdc++.h> using name ...

  3. OpenGL入门程序三:点、线、面的绘制

    1.点: void TestPoint() { //点的大小默认为一个像素,通过下面的函数可以设置一点的大小 glPointSize(50.0f); glBegin(GL_POINTS); glVer ...

  4. robot脚本编写规范

    一个robot脚本主要有四部分组成: ***settings*** 设置 ***keywords*** 关键词 ***variables*** 变量 ***test cases*** 测试用例 一般, ...

  5. Java实现日历小程序【代码】

    这个没啥难点的,主要是界面设计吧 界面就是这个样子 运行时请在src同目录下放上我女神的照片 -----------------------------------代码如下-------------- ...

  6. 新概念 Lesson 1 Excuse me!

    xu言: 从哪里跌倒,就从哪里爬起来.希望这次真的能够坚持下去... standard  ['stændəd]    pronunciation [prə,nʌnsɪ'eɪʃ(ə)n] basic   ...

  7. Android之MVC模式的使用

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  8. python-day9-循环嵌套

    练习:99乘法表: # for line in range(1,10): #line=2# for row in range(1,line+1):# print('%s*%s=%s' %(line,r ...

  9. ubuntu 用户和root权限转换

    1,用户权限要转换为root 输入:sudo su   或者sudo -i  然后按照提示输入相应的密码你就可以转化为root用户了. 2,root权限切换成用户权限 输入:su  如果是服务器那就输 ...

  10. POJ-2096 Collecting Bugs (概率DP求期望)

    题目大意:有n种bug,m个程序,小明每天能找到一个bug.每次bug出现的种类和所在程序都是等机会均等的,并且默认为bug的数目无限多.如果要使每种bug都至少找到一个并且每个程序中都至少找到一个b ...