MongoDB固定集合

MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,大小固定,有点类似数据结构中的循坏队列,先进先出方式。满队列删除原来的元素!

常用命令

创建固定集合:

1
db.createCollection(“test”,{capped:true,size:20000,max:2000})

size 是整个集合空间大小,单位为【KB】

max 是集合文档个数上线,单位是【个】

判断集合是否为固定集合:

1
db.test.isCapped()

如果需要将已存在的集合转换为固定集合可以使用以下命令:

1
db.runCommand({"convertToCapped":"test",size:10000})

固定集合文档按照插入顺序储存的,默认情况下查询就是按照插入顺序返回的,也可以使用$natural 调整返回顺序。

1
db.test.find().sort({$natural:-1})

固定集合特点

  1. 对固定集合进行插入速度极快
  2. 按照插入顺序的查询输出速度极快
  3. 能够在插入最新数据时,淘汰最早的数据

固定集合缺点

固定集合无法精确到具体的时间,文档的条数与文档大小都不能确定。固定集合无法分片,对于需要经常查询的可能就不是太合适

应用场景

在数据量较少的情况下,或者只需要保存部分的数据,如

  • 储存日志信息用法
  • 缓存一些少量的文档