• 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
        ]
    }
    >
    
    
    
    
    
    
    
  • 相关阅读:
    ::在c++中的应用
    VS2008工程一些操作
    vs2008添加链接库
    从服务器 (PC 端 ) 发送图片到客户端 (android 手机端 ) [转]
    Android PowerImageView实现,可以播放动画的强大ImageView[转]
    INI文件读写
    关于超链接伪类的使用,:link,:visited,:hover
    关于div的居中显示
    常见公告栏信息效果的实现
    利用ul,li,span,position:relative实现文本的居中显示
  • 原文地址:https://www.cnblogs.com/shijieli/p/10477748.html
Copyright © 2020-2023  润新知