MongoDB——mongoDB中的封顶集合

2024-08-26 22:18
文章标签 mongodb 集合 封顶

本文主要是介绍MongoDB——mongoDB中的封顶集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

场景

一个日志系统,而你保存数据的方式就是存储到mongoDB中。你并不想要很多陈旧的日志,这时候可以考虑mongoDB中的封顶集合。

概念

封顶集合是具有固定大小的集合,当一个新的文档需要写入到超过该集合的大小的集合的时候,集合中最旧的文档就会被删除,并插入新的文档。对于插入/检索/和删除率很高的对象,封顶集合的效果还是很好的。

好处

  1. 他们保证插入顺序被保留。因而查询不需要利用一个索引来按照文档被存储的顺序返回他们,这消除了索引的开销。
  2. 他们还保证插入顺序与磁盘上的顺序是相同的,这是通过禁止增加文件大小的更新做到的,这消除了重新定位和管理软件的新位置的开销。
  3. 他们自动移除集合中最沉旧的文件,因此,你不需要在自己的应用程序中的代码中实现删除

限制

  1. 一旦被插入到封顶集合中,文档就无法更新到更大的尺寸了。虽然可以更新,但是新数据必须和原数据的大小相同或比原数据的大小更小
  2. 不能从封顶集合中删除文档,这意味者即使数据不被使用,他也在磁盘上占用空间,虽然你可以显示删除封顶集合来有效的删除所有条目,但你需要重新创建才能再次使用它。

比较

influxDB中可以自动设置过期时间来自动删除陈旧的数据,而不是通过文件大小的方式。相比较来说,我更喜欢时间的形式。所以我们的sentinel的日志记录也是直接用的influxDB,而不是mongoDB。

这篇关于MongoDB——mongoDB中的封顶集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109838

相关文章

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

Java基础回顾系列-第六天-Java集合

Java基础回顾系列-第六天-Java集合 集合概述数组的弊端集合框架的优点Java集合关系图集合框架体系图java.util.Collection接口 List集合java.util.List接口java.util.ArrayListjava.util.LinkedListjava.util.Vector Set集合java.util.Set接口java.util.HashSetjava

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

java集合的概述

集合就是一个容器,我们可以把多个对象放入的容器中。就像水杯(假设容量可以不断扩大)一样,你可以往水杯中不断地添加水,既然是水杯,你就不能往里添加沙子,也就是说集合中添加的对象必须是同一个类型的(引用类型,而不能是基本类型)。 看到集合的介绍会让我们的想起数组,那么集合和数组有什么区别呢? 首先,数组的大小是固定的,而集合理论上大小是不限的。 其次,数组既可以存储基本数据类型的数据,也可以存储

生产mongodb 分片与集群 方案

链接:http://my.oschina.net/pwd/blog/411439#navbar-header 注:主要是有一键安装的脚本可以借鉴

mongodb基本命令和Java操作API示例

1.Mongo3.2 java API示例:http://www.cnblogs.com/zhangchaoyang/articles/5146508.html 2.MongoDB基本命:http://www.cnblogs.com/xusir/archive/2012/12/24/2830957.html 3.java MongoDB查询(一)简单查询: http://www.cnblogs

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo

mongodb简单入门

一篇较好的mongodb常用操作命令:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html mongodb的java操作:http://www.cnblogs.com/cyhe/p/5451421.html

mongodb自启动脚本.md

可粘贴文本(不全): #!/bin/sh##chkconfig: 2345 80 90#description:mongodb#processname:mongodbif test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never > /sys/kernel/mm/transparent_hugepage/e

MongoDB学习—(6)MongoDB的find查询比较符

首先,先通过以下函数向BookList集合中插入10000条数据 function insertN(obj,n){var i=0;while(i<n){obj.insert({id:i,name:"bookNumber"+i,publishTime:i+2000})i++;}}var BookList=db.getCollection("BookList")调用函数,这样,BookList