Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

创建固定大小集合

在此页面上

  • 关于此任务
  • 步骤
  • 创建设置为最大大小的固定大小集合
  • 创建具有最大文档数的固定大小集合
  • 了解详情

要创建固定固定大小集合,请为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 字段始终为必需。

后退

固定大小集合