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
    ]
}
>

 

 

 

 
 

 

 

 
 

 

转载于:https://www.cnblogs.com/shijieli/p/10477748.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值