初识MongoDB(十一) MongoDB固定集合

一般情况下,我们创建的集合是没有大小的,可以一直往里边添加文档,这种集合可以动态增长。MongoDB中还有一种集合叫做固定集合,这种集合的大小是固定的。我们可以在创建的时候设置该集合中文档的数目,假设为100条。当集合中的文档数目达到100条时,如果再向集合中添加文档,则只会保留最新的100个文档,之前的文档则会被删除。

一般像日志信息我们就可以使用固定集合,其他一些需要定期删除的数据也可以使用固定集合,本文就来看看固定集合的使用。

创建

固定集合的创建方式也比较简单,如下:

db.createCollection("fixed_collec_1",{capped:true,size:10000,max:100})

capped:true 参数表示该集合是一个固定大小集合,size表示集合的大小,单位为kb,max则表示集合中文档的最大数量。我们这里相当于给了固定集合两个限制条件,只要有任意一个限制条件满足,集合都会开始将古老的数据删除。固定集合一旦创建成功,就不能再修改,想修改只能删除重来。此时我们尝试向集合中添加120条简单数据,然后我们会发现最早的20条数据消失了。

除了直接创建一个固定集合外,我们也可以通过 convertToCapped 操作将一个普通集合转为一个固定集合,如下:

db.runCommand({convertToCapped:"collec_1",size:1000})

自然排序问题

自然排序就是按照文档在磁盘中的顺序来进行排列,在普通的集合中自然排序并没有多大的意义,因为文档的位置总是在变化,而固定集合中的文档是按照文档被插入的顺序保存的,自然顺序也就是文档的插入顺序。因此我们可以利用自然排序对文档从旧到新排序,如下:

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

也可以从新到旧排序:

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

固定集合中的其他操作和普通集合基本一致,这里就不再赘述。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值