MongoDB 固定集合

本文详细介绍了MongoDB中固定集合的概念、特点及应用场景,并提供了创建固定集合的方法与自然排序的查询方式。

1.定义

固定集合大小固定,必须事先创建,并且指定大小。

固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间,即自动淘汰最早的文档。

2.与普通集合的区别

1)不能删除文档

2)更新不能导致文档移动,即更新不能使得被更新的文档的存储空间变大

3)在默认情况下固定集合没有索引

3.特点

1)插入速度极快

2)按照插入顺序输出的查询速度极快

4.应用

1)日志

2)缓存少量的文档

3)任何想要自动淘汰过期属性的场景

5.创建

方法一:
db.createCollection("sys_log", {"capped": true, size: 100, max: 20});
sys_log: 集合名
capped: true,表示为固定集合
size: 集合字节大小
max: 文档数量的上限

方法二:
db.runCommand({"convertToCapped": "user", "size": 100});
convertToCapped: 要转化为固定集合的普通集合名
size: 集合字节大小

6.自然排序

自然顺序就是文档在磁盘上的顺序,即文档的插入顺序,自然排序就是与此相同的。

默认情况下,查询固定集合后就是按照插入顺序返回文档。即:

db.sys_log.find().sort({"$natural": 1});

也可以使用自然排序按照反向插入的顺序查询:

db.sys_log.find().sort({"$natural": -1});

注:非固定集合不能保证文档按照特定顺序存储,所以自然顺序的意义不大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值