不同于普通集合,固定集合必须在使用之前显示创建,可以使用create命令创建固定集合。在shell中,可以使用db.createCollection函数:
//创建大小为1024字节的固定集合
db.createCollection("capped",{capped:true,size:1024});
//创建大小为1024字节,文档数量为100的固定集合
db.createCollection("capped",{capped:true,size:1024,max:100});
值得注意的是, size参数为必选项, max参数为可选项。不管先达到哪个限制,之后插入的新文档会把旧文档挤出集合,固定集合的文档数量不能超过设置的文档数量,固定集合的大小也不能超过设置的大小。
固定集合创建之后,就不能改变了,如需修改固定集合的属性,就只能删除后再创建了。因此,在创建大的固定集合之前应该仔细想清楚它的大小。
除此之外,还可以使用convertToCapped命令将常规集合转换为固定集合:
db.runCommand({convertToCapped:"test", size:1024, max:100});
注意,无法将固定集合转换为非固定集合。