mongodb 上限集合

上限集合是固定大小的循环集合按照插入以支持高性能的创建,读取和删除操作。通过循环,这意味着,当分配给该集合中的固定大小要用尽时,它会开始删除集合中最旧的文件而不提供任何明确的命令。

上限集合限制更新,如果更新导致增加的文档大小的文件。 由于在磁盘存储器的顺序封端集合存储文档,它确保了文件大小不会增加分配在磁盘上的大小。上限集合是最佳的,用于存储日志信息,高速缓存数据或任何其它高容量数据。

创建上限集合:

要创建一个上限集合,我们使用普通createCollection命令,但是带有 capped 的选项,指定值为true,并指定集合的字节的最大值。

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

除了集合大小,我们也可以使用max参数限制集合中的文档的数量:

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

如果想检查集合是否达到上限,可以使用以下命令isCapped:

>db.cappedLogCollection.isCapped()

如果一个现有的集合,想要将它转换为上限,可以用下面的代码做到这一点:

>db.runCommand({"convertToCapped":"posts",size:10000})

此代码将转换现有集合帖子到上限集合。

查询上限集合:

默认情况下,在上限集合查找查询将显示在插入顺序的结果。但是,如果想检索顺序相反的文件,使用如下面的代码 sort 命令:

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

有关于上限集合值得了解的其他几个要点:

  • 我们不能删除上限集合文档
  • 还有没有默认索引在上限集合,甚至没有_id字段
  • 同时插入一个新的文档,MongoDB并没有实际查找一个地方,以适应在磁盘上新的文档。 它可以盲目在集合的尾部插入新的文档。这使得在上限集合插入操作速度非常快。
  • 同样,虽然读文件MongoDB刚刚返回相同的顺序文件在于磁盘上。这使得读取操作速度非常快。

转载于:https://www.cnblogs.com/wangjing666/p/6845220.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值