创建固定大小集合
要创建固定固定大小集合,请为db.createCollection()
方法或create
命令指定 capped
选项。
您必须显式创建固定大小集合。您不能通过将数据插入到不存在的集合中来隐式创建固定大小集合。
当您创建固定大小集合时,必须指定集合的最大大小。MongoDB 为集合预先分配指定的存储。固定大小集合的大小包括少量内部开销空间。
您可以选择指定集合的最大文档数。如果集合在达到最大文档计数之前达到最大大小限制,MongoDB 会删除较旧的文档。
关于此任务
通常情况下,TTL(存活时间)索引比固定大小集合提供更好的性能和更大的灵活性。TTL 索引会过期,并根据日期类型字段的值和索引的 TTL 值从正常集合中删除数据。
固定大小集合对写入操作进行序列化,因此其并发插入、更新和删除性能不如非固定大小集合。在创建固定大小集合之前,请考虑是否可以改用 TTL 索引。
步骤
以下示例展示了如何:
创建设置为最大大小的固定大小集合
创建一个名为 log
的固定大小集合,其最大大小为 100000 字节:
db.createCollection( "log", { capped: true, size: 100000 } )
注意
您为 size
字段提供的值必须大于 0
且小于或等于 1024^5
(1 PB)。MongoDB 将所有固定大小集合的 size
舍入到最接近的 256 整数倍(以字节为单位)。
创建具有最大文档数的固定大小集合
创建一个名为log2
的固定大小集合,其最大大小为5 、 242 、 880字节,最多可存储5 、 000文档:
db.createCollection( "log2", { capped: true, size: 5242880, max: 5000 } )
重要
即使您指定了最大文档数 ( max
),size
字段始终为必需。