本篇介绍mongoDB应用中常用的两个对象,固定集合和GridFS文件
一、Capped Collection固定集合
1、介绍
固定集合顾名思义,有着固定大小的collection集合,除了大小固定的特点之外,它与普通集合不同之处,还在于固定集合以LRU(Least Recently Used)最近最少使用原则进行数据存储,在固定的容量下,如果空间用完,将不常使用的数据移出集合,保证集合中的数据永远保持最新。
所以根据固定集合的特点,它的主要应用场景就是用于存储日志信息和充当缓存存取少量文档。
2、创建固定集合
固定集合的创建不像普通集合隐士创建(crud时直接传入参数名,若DB中无该集合则直接创建),固定集合的创建必须通过createCollection方法进行
Db.createCollection(“testImage”,{capped:true,size:10000})
如上,创建一个名为testImage,大小为10M的固定集合
3、查看集合状态
如何查看一个集合是否为固定集合
Db.testImage.stats();
或者Db.testImage.isCapped();
4、将普通集合转换成固定集合
Db.runCommand({convertTocapped:”testImage”,size:10000})
二、GridFS大文件管理
GridFS是MongoDB中用于存储大二进制文件的机制,例如用于存储视频、高清图片等,它的优越之处在于GridFS会直接利用已建立的分片机制,在数据存储时不会产生任何磁盘碎片。
GridFS通过两个表来存储数据,[.files]存储元数据对象,文件名基本属性,[.chunks]用于存储文件二进制信息、文件内容。上篇博客中将图片上传下载上就已经应用到GridFS文件简单介绍了分布式文件存储的特点,在此不再赘述,大家有兴趣可以查阅上一篇博客。
2、上传下载文件到GridFS
在MongoDB中,通过【get +文件名】下载GridFS 中的文件,【put+文件名】上传文件到GridFS,【delete +文件名】 删除GridFS中的文件。例如”:
./mongofiles put mongoTest.tar.gz
./mongofiles get mongoTest.tar.gz
./mongofiles delete mongoTest.tar.gz
3、查看fs.files中的内容
db.fs.files.find()
除了通过增删改查语句了解MongoDB的面向集合、对象特性之外,在MongoDB实际应用中常用的对象如本文介绍的固定集合和GridFS文件,也需要我们先了解、再应用才能确定自己对MongoDB有点概念和自己的认识。