在 MongoDB 中,固定集合(TTL 集合)是一种特殊类型的集合,它允许你自动删除集合中超过一定时间的文档。TTL 表示 "Time To Live",即文档在集合中存活的时间。

以下是使用固定集合的基本概念和操作:

创建固定集合:

你可以在创建集合时指定过期索引来创建固定集合。过期索引用于标识哪些文档应该在一定时间后过期。
db.createCollection("myCollection", {
    expireAfterSeconds: 3600  // 文档过期时间,单位为秒
});

上面的例子中,myCollection 是集合的名称,expireAfterSeconds 设置文档的过期时间为 3600 秒(1 小时)。

插入文档:

插入到固定集合的文档会自动被标记为过期,MongoDB 会在过期时间到达后删除这些文档。
db.myCollection.insertOne({
    key: "value",
    createdAt: new Date()
});

在上面的例子中,createdAt 字段是一个时间戳,用于标识文档的创建时间。

查询固定集合:

查询固定集合时,MongoDB 会自动排除已过期的文档。
db.myCollection.find({});

这会返回所有未过期的文档。

注意事项:

1. 固定集合的性能可能受到过期索引的影响,特别是在处理大量过期文档时。需要根据具体的使用场景和数据量来进行性能测试和优化。

2. 固定集合适用于需要自动清理过期数据的场景,比如存储会话信息、日志等。

3. 过期索引的单位是秒,可以根据实际需求设置不同的过期时间。

4. 固定集合的过期索引只能应用在一个字段上,通常是存储时间戳的字段。

请注意,在 MongoDB 4.2 版本之前,TTL 索引的最小过期时间是 60 秒。在 MongoDB 4.2 及以后的版本,可以设置更短的过期时间。


转载请注明出处:http://www.zyzy.cn/article/detail/14251/MongoDB