MongoDB 固定集合学习笔记

什么是固定集合

MongoDB 中的固定集合(Fixed Collections)是一种特殊类型的集合,它们具有固定的大小限制。当固定集合中的文档数量达到限制时,新的文档将覆盖最早插入的文档,以此类推。

相比于普通集合,固定集合的存储、查询等操作更加高效,因为它们能够充分利用预分配的存储空间。

如何创建固定集合

在 MongoDB 中,我们可以通过以下语法来创建一个固定集合:

Copy Code
db.createCollection(name, { capped: boolean, size: number, max: number })

其中,name 参数指定了集合的名称,capped 参数用于指定该集合是否为固定集合,size 参数表示集合的最大存储空间(单位为字节),max 参数则表示集合中文档的最大数量。

举个例子,我们可以通过以下命令来创建一个最大存储空间为 1GB,最多容纳 100 个文档的固定集合:

Copy Code
db.createCollection("myCappedCollection", { capped: true, size: 1073741824, max: 100 })

固定集合的使用场景

固定集合一般用于存储日志数据、缓存数据等具有时间戳特征的数据。通过设定固定的大小限制,可以避免数据量无限制增长导致的存储空间不足问题。

举个例子,我们可以通过以下命令向 myCappedCollection 集合中插入一条文档:

Copy Code
db.myCappedCollection.insert({ "logTime": new Date(), "message": "Hello World" })

当集合中的文档数量达到 100 时,如果我们再插入一条新的文档,它将会覆盖最早插入的那条文档。这样,我们就能够始终保持该集合中存储的是最新的 100 条日志数据。

固定集合的限制

虽然固定集合具有很多优点,但也存在一些限制:

  • 固定集合只支持插入操作和查询操作,不支持更新和删除操作。

  • 固定集合中的文档大小必须小于最大存储空间。

  • 固定集合一旦创建后,无法修改其大小限制。如果想要修改大小限制,需要先删除该集合并重新创建。

总结

本文介绍了 MongoDB 固定集合的基本概念、创建方法、使用场景以及限制等方面。固定集合是一种非常实用的数据库技术,可以在一定程度上解决数据存储、查询等方面的问题。