①Capped集合(固定集合)
Capped集合的大小固定,性能好,如果空间用完了,新的对象会覆盖旧的对象。
find时默认就是插入的顺序,Capped集合会自动维护。
②语法
db.createCollection(name, options);
name: 要创建的集合名称
options: 可选参数, 指定有关内存大小及索引的选项
③
参数
options 可以是如下参数:
字段 | 类型 | 描述 |
---|---|---|
capped | 布尔 | (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true时,必须指定size参数。 |
autoIndexId | 布尔 | (可选)如为 true,自动在 _id 字段创建索引。默认为 false。 |
size | 数值 | (可选)为固定集合指定一个最大值(以字节计)。 如果capped为 true,也需要指定该字段。 |
max | 数值 | (可选)指定固定集合中包含文档的最大数量。超过之后新的会覆盖老的数据 |
在插入文档时,MongoDB首先检查固定集合的size字段,然后检查max字段。
③已有的集合转化成为固定集合
可以把已有的集合转化成为固定集合,反之不行。
例如:
db.runCommand({“convertToCapped”:”users”,”size”:1000});
④使用和约束
1:32位机器上,一个Capped集合的最大值约为482.5M,64位只受系统文件大小的限制,创建的时候,可以预指定大小
2:可以向Capped集合中加入数据,但不能删除数据,也不能改变集合大小。
3:可以使用drop方法删除集合,删除后,需显示的重新创建这个集合
4:Capped集合在创建的时候,默认不会对任何键创建索引,如果要在”_id”上创建索引的话,在创建集合的时候,要使用autoIndexId的参数,设置为true
⑤实例
实例:创建固定集合mycol,整个集合空间大小10KB,文档最大个数为5个。
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 10, max : 5 } );
⑥
⑦
⑧
⑨
⑩
⑪
⑫
⑬
⑭
⑮
⑯
⑰
⑱
⑲
⑳