上限集合是固定大小的循环集合,遵循插入顺序以支持高性能的创建,读取和删除操作。循环表示这意味着分配给集合的固定大小用尽时,它将开始删除集合中最旧的文档,而无需提供任何显式命令。

创建上限集合

要创建一个有上限的集合,无涯教程使用常规的createCollection命令,但将 capped选项设置为 true 并指定最大的字节大小。

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

除了设置大小,无涯教程还可以使用 max 参数限制文档数-

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

如果要检查集合是否受限制,请使用以下 isCapped 命令-

>db.cappedLogCollection.isCapped()

如果有计划将其转换为上限的现有集合,则可以使用以下代码进行处理-

>db.runCommand({"convertToCapped":"posts",size:10000})

查询上限集合

默认情况下,对上限集合的查找查询将按插入顺序显示输出。但是,如果您希望以相反的顺序检索文档,请使用 sort 命令,如以下代码所示-

>db.cappedLogCollection.find().sort({$natural:-1})

参考链接

https://www.learnfk.com/mongodb/mongodb-capped-collections.html