简单介绍
capped collections是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)
规则和插入顺序进行age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创建时需要预先
指定大小。如果空间用完,新添加的对象将会取代集合中最旧的对象
永远保持最新的数据
功能特点
可以插入及更新,但更新不能超出collection的大小,否则更新失败。不允许删除,但是
可以调用drop删除集合中的所有行,但是drop后需要显式地重建集合。在32位机上一个capped
collection的最大值约为482.5M,64位上只受系统文件大小的限制。
属性1: 对固定集合进行插入数据极快。
属性2:按照插入顺序的查询输出速度极快。
属性3:能够在插入最新数据时,淘汰最早的数据。
用法1:储存日志信息(后面的日志往前递增,前面的日志自动删减,保证日志总量的大小固定)
用法2:缓存一些少量的文档
创建固定集合
不像普通集合,固定集合需要显式的创建和使用
db.createCollection("my_collection", {capped:true,size:10000});
创建一个集合为my_collection的固定集合,大小为10000字节。还可以限定文档
个数。加上:Max:100属性。
注意:指定文档上限,必须指定大小。文档限制是在容量没有满时进行淘汰,要是满了,
就根据容量限制来进行淘汰。
db.c1.stats();
db.createCollection("c2",{capped:true,size:1000000,max:5});
普通集合转为固定集合
db.runCommand({convertToCapped:"c1",size:100000,max:3});
- 浏览: 37943 次
- 性别:
- 来自: 北京
最新评论
-
abeen:
真是人工发的?
python 基础 -
dire_cyrus:
没用过啊,这是那个版本的特性啊?
java标签-循环控制语句的利器 -
阳光晒晒:
还可以使用goto的话就更好了
java标签-循环控制语句的利器
相关推荐
MongoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection)。 固定集合可以声明collection的容量大小,其行为类似于循环队列。数据插入时,新文档会被插入到队列的末尾,如果队列已经...
在MongoDB中,固定集合(capped collection)是一种特殊类型的集合,具有固定大小和自动溢出处理机制。当固定集合达到其容量时,新插入的文档会替换最旧的文档,确保集合始终保持在设定的大小内。 1. 创建固定集合...
MongoDB 还提供了一种特殊的集合类型——“固定大小集合”(Capped Collections),用于实现高性能的队列功能。Capped Collections 有固定的存储容量,一旦达到上限,新插入的数据会替换最旧的数据,保持集合的大小...
new IndexModel(BsonDocument.parse("{_id: 1}"), new IndexOptions().capped(true).size(1024 * 1024 * 5)) // 5MB的固定集合 ); db.createCollection("capped_collection", new CreateCollectionOptions().capped...
这段代码会创建一个上限为1MB且最多存储10000个文档的固定大小(capped)集合。 6. 关闭连接 当完成数据库操作后,别忘了关闭连接: ```java mongoClient.close(); ``` 7. 错误处理 在示例代码中,我们使用了异常...
- **options**: 可选参数,用于指定集合的特定属性,如是否为固定集合、集合的大小限制等。 ##### 实例 创建一个名为 `runoob` 的集合: ```plaintext db.createCollection("runoob") ``` 为了验证集合是否存在,...
Oplog 是 MongoDB 实现复制集的关键数据结构,在复制集中 Primary 对数据库操作之后就会产生一个 ...Oplog 存在集合 local.oplog.rs,这是系统内置集合,一个 capped collection,即是这个 collection 有固定大小,一
封顶集合有固定的大小,一旦达到上限,最早的数据会被自动覆盖。 - `autoIndexID`: 默认情况下,`_id`字段会有自动索引。若设置为`true`,会强制创建此索引。 - `size`: 用于封顶集合的大小限制,以字节为单位。 - `...
创建集合可以使用`db.createCollection("collName", {size: 20, capped: 5, max: 100})`,其中size指定文件大小,capped表示是否为固定大小集合,max则是固定集合的最大文档数量。`db.getCollection("account")`获取...
- 如果需要创建固定大小的集合(即capped collection),可以使用以下格式: ```javascript db.createCollection( "collection_name", {capped: true, size: 1000000, max: 10000} ) ``` - 其中`capped`为...
创建集合时,可以根据需求设置为固定大小集合(capped collection),这种集合在创建时需要指定最大大小和文档数量。 ```javascript db.createCollection("capped_col1", {capped: true, size: 100000, max: 100});...
* Capped:(可选)如果为 true,则创建固定集合。 * autoIndexId:(可选)如为 true,自动在 _id 字段创建索引。 * Size:(可选)为固定集合指定一个最大值,以千字节计(KB)。 * Max:(可选)指定固定集合...
- `options`: 可选参数,用于指定集合的一些特殊属性,例如是否为固定大小(capped)等。 - **示例**: - 创建一个简单的集合: `db.createCollection("mycollection")` - 创建一个固定大小的集合: `db....
- **简单介绍**: Capped Collection是一种特殊类型的集合,其大小和文档数量都是固定的。 - **功能特点**: - 自动过期机制。 - 高效的写操作。 - **常见用处**: - 日志存储。 - 缓存数据。 #### 七、GridFS - ...
第三,对于需要缓存固定数量数据的场景,使用Capped Collection是一个明智的选择。Capped Collection类似于一种自动过期的数据结构,它能限制集合的大小,并且在达到容量时自动覆盖最旧的数据,适合实现简单的FIFO...