Docs 菜单
Docs 主页
/
MongoDB Manual
/

时间序列索引

在此页面上

  • 集群化集合
  • 复合索引
  • 部分索引
  • TTL Indexes
  • 禁止的索引
  • 索引最佳实践

时间序列集合上的索引的行为通常与常规集合上的索引相同,但有一些额外的注意事项和限制。

如果 时间序列集合 上有 个 从节点(secondary node from replica set)索引 ,并且您需要降级特征兼容性版本(fCV),则必须首先删除与降级的 fCV 不兼容的所有从节点(secondary nodesetFeatureCompatibilityVersion from replica set)索引。有关详细信息,请参阅 。

从版本6开始。 0 ,您可以为时间序列集合中的任何字段添加二级索引。 MongoDB 按文档而不是单个文档对时间序列集合进行索引。时间序列存储桶包含具有共享 MetaField 值的文档,并按时间相近的 timeField 值进行排序。 MongoDB 会对除 MetaField 之外的所有字段的最小值和最大值进行索引。对存储桶而不是单个文档进行索引可减小索引大小并提高查询效率。

提示

要提高查询性能,您可以手动在时间序列集合中的任何字段添加从节点(secondary node from replica set)索引

默认情况下,MongoDB 基于存储桶时间对时间序列集合进行集群。

6.3 版本中的新功能

从 MongoDB 6开始。 3 ,MongoDB 在时间序列集合的 metaField 和 timeField 上创建默认复合索引。 MongoDB 使用此索引来提高查询性能和速度。

您可以在timeFieldmetaField或测量字段上添加复合索引

6.0 版本中的新功能

从 MongoDB 6开始。 0 ,您可以将$or$in$geoWithin操作符与时间序列集合上的部分索引一起使用。

您不能在 metaField 和 timeField 上创建部分索引

6.3 版本中的新功能

从 MongoDB 6开始。 3 ,您可以使用仅依赖于元字段的partialFilterExpression创建TTL索引。在6之前的版本中。 3 ,只能根据expireAfterSeconds参数创建 TTL 索引。

如果您的时间序列集合不使用expireAfterSeconds选项使文档过期,则创建部分 TTL 索引只会为匹配文档设置过期时间。如果集合对所有文档使用expireAfterSeconds ,则可以使用部分 TTL 索引以使匹配文档更快过期。

MongoDB 不允许对时间序列集合使用以下索引类型:

您无法在 MetaField 上创建稀疏索引。

  • 使用 MetaField 索引进行筛选和相等操作。

  • 使用 timeField 和其他索引字段进行范围查询。

  • 一般索引策略也适用于时间序列集合。有关更多信息,请参阅索引策略。

有关详细信息和示例,请参阅向时间序列集合添加二级索引。

后退

构建物化视图