Capped Collection
固定集合(Capped Collection)是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创建时要预先制定大小,如果空间用完,新添加的对象将会取代集合中最旧的对象,永远保持最新的数据。
查看集合的状态信息
db.cot1.stats(); //查看集合cot1的状态信息
删掉指定集合
db.collection1.drop(); //删除collection1集合
mongoDB中集合创建默认是隐式创建的,可以使用createCollection显示创建集合
db.createCollection("collect");
删掉指定数据库
db.dropDatabase(); //删除当前数据库
查询所有数据库
show dbs //查询所有数据库
显示当前库中所有集合
show tables; 或者 show collections;
固定集合的功能特点
可以插入及更新,但更新不能超出collection的大小,否则更新失败,不允许删除,但是可以调用drop()删除集合中的所有行,但是drop后需要显式地重建集合.在32位机子上一个cappped collection的最大值约为482.5M,64位上只受系统文件大小的限制.
固定集合属性及用法:
属性1:对固定集合进行插入速度极快
属性2:按照插入顺序的查询输出速度极快
属性3:能够在插入最新数据时,淘汰最早的数据
用法1:储存日志信息
用法2:缓存一些少量的文档
创建固定集合
不像普通集合,固定集合需要显示的创建使用createCollection命令
eg. db.createCollection("collect",{capped:true, size:10000});
创建一个集合为collect的固定集合,大小为10000字节,还可以指定文档个数,加上Max:100属性.
注意:指定文档上限,必须指定大小,文档限制是在容量没满时进行淘汰,要是满了,就根据容量限制来进行淘汰.
可以再创建capped collection时指定collection中能够存放的最大文档数目,但这是要指定size,因为总是先检查size后检查maxRowNumber.可以使用validate()查看一个collection已经使用了多少空间,从而决定size设为多大.
> db.createCollection("mycappedcoll",{capped:true,size:10000,max:100})
{ "ok" : 1 }
> db.mycappedcoll.validate();
创建collection时还有一个参数”autoIndexID”,值可以为”true”和”false”,决定是否需要在”_id”上创建索引,例如
> db.createCollection("mycappedcoll",{capped:true,size:10000,max:100,autoIndexId:false})
默认情况下对一般的collection是创建索引的,但不会对capped collection创建.capped collection不能被Shard,这也是有道理的,一个经常被刷新且大小固定的表,做Sharding(分片)也没太大意义.
转换集合
把普通的集合转换成固定集合需要使用convertTocapped命令
db.runCommand( { convertTocapped:"test",size:10000 } );
把test普遍集合转换为固定集合,大小为10000字节.
自然排序
固定集合文档按照插入顺序储存的,默认情况下查询就是按照插入顺序返回的,也可以使用$natural调整返回顺序.
db.mycappedcolt.find().sort( {"$natural":1} );
参数1表示默认顺序,-1则相反.
判断集合是否为固定集合
db.colt.isCapped();
查看集合状态信息
db.colt.stats();
GridFS
GridFS是一种在MongoDB中存储大二进制文件的机制,使用GridFS原因有以下几种:
储存巨大的文件,比如视频、高清图片等.利用GridFS可以简化需求.
GridFS会直接利用已经建立的复制或分片机制,故障恢复和扩展都很容易.
GridFS可以避免用户上传内容的文件系统出现问题.
GridFS不产生磁盘碎片
GridFS存储数据
GrdiFS使用两个表来存储数据:
files 包含元数据对象
chunks 包含其他一些相关信息的二进制块.
为了使多个GridFS命名为一个单一的数据库,文件和块都有一个前缀,默认情况下,前缀是fs,所以任何默认的GridFS存储将包括命名空间fs.files和fs.chunks。
各种第三方语言可以更改其前缀
使用GridFS mongofiles
mongofiles是从命令行操作GridFS的一种工具
四个命令:put(存储)、get(取得/下载)、list(列表)、delete(删除)
eg. ./mongofiles put testfile.zip
./mongofiles list
./mongofiles get testfile.zip
./mongofiles delete testfile.zip
验证md5
mg5sum testfiles.zip
此时登录mongo,show tables可以看到新增2个文件fs.files和fs.chunks.
查看fs.files中的内容
db.fs.files.find();
fs.files 中存储的是一些基础的元数据信息.
db.fs.chunks.find();
fs.chunks 中存储的是一些实际的内容数据信息.
相关推荐
MongoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection)。 固定集合可以声明collection的容量大小,其行为类似于循环队列。数据插入时,新文档会被插入到队列的末尾,如果队列已经...
MongoDB固定集合与管理工具.pdf 学习资料 复习资料 教学资源
MongoDB固定集合.pdf 学习资料 复习资料 教学资源
Mongodb基于GridFS存储文件,通过流的方式存储文件图片,以及读取功能。本人亲自测试、编写。值得信赖
Mongodb的gridfs的C#的例子
功能:基于mongodb gridfs实现简单文件上传、下载、搜索、删除。 开发环境:VS2012 mongodb驱动:官方Driver 上传控件:jquery uploadify 疑问:sort()方法可能有点问题 PS:有问题可以留言,欢迎交流~
05★MongoDB学习★操作集合(Collection)
MongoDB.GridFS.dll c#类库...............................................
Java 操作Mongodb中存储的文件的实例
Vue+axios+Spring Boot+mongoDB 基于Mongo图片存储和基于GridFS的文件存储.zip
MongoDB 的 Capped Collection是一个天生的日志系统,MongoDB自己的oplog就是用它来存储的,Capped Collection的特点是可以指定Collection的大小,当记录总大小超过设定大小后,老的数据会被自动抹掉用于存储新的...
mongodb 所需jar包及gridfs java示例代码
基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,适合用作毕业设计、课程设计作业等,项目均经过测试,可快速部署运行! 基于node.js、vue、mongodb等技术构建的web系统,界面美观,功能齐全,...
gridfs2s3 - 将 MongoDB GridFS 文件迁移到 AWS S3 的工具 这是一个简单的工具,它将抓取您指向的 GridFS 中的所有文件,并将它们粘贴到 S3 中 安装 go install github.com/Bowbaq/gridfs2s3 用法 gridfs2s3 -h flag...
java+mongDB做文件服务器,用于文件存储,写了个简单文件上传下载删除DEMO,用eclipse import项目即可。
NULL 博文链接:https://shift-alt-ctrl.iteye.com/blog/2195646
目的具有一些自然优势,例如可伸缩性(分片)和HA(副本集)。 但是,由于它将文件存储在ASCII字符串块中,因此毫无疑问会降低性能。 我正在尝试从GridFS读取3种不同的部署(不同的MongoDB驱动程序)。 并将结果与...
《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。详细而深入,对MongoDB的开发和管理方法进行了详细的讲解,也对MongoDB的工作机制进行了深入的探讨。注重...
网站大量图片存储需要用到Mongodb,本代码中以图片上传、图片更新、图片删除为例子,展示了以GridFS方式对文件进行存取。