Docs 菜单
Docs 主页
/ /

创建和查询时间序列集合

本页介绍如何创建和查询时间序列集合。提供的代码示例创建并使用包含时间、温度和传感器信息的示例天气数据。

重要

功能兼容性版本要求

您只能在 FeatureCompatibilityVersion 设置为 5.0 或更高版本的系统上创建时间序列集合。

时间序列集合包含以下字段:

字段
类型
说明

timeseries.timeField

字符串

必需。包含每个时间序列文档中日期的字段的名称。时间序列集合中的文档必须具有有效 BSON 日期,以作为 timeField 的值。

timeseries.metaField

字符串

可选。包含每个时间序列文档中元数据的字段的名称。指定字段中的元数据应是用于标记一系列独一无二的文档的数据。元数据应该很少改变(如有)。指定字段的名称可能不是 timeseries.timeField 或与 _id 相同。该字段可以是任何数据类型。

虽然metaField字段是可选的,但使用元数据可以改进查询优化。 例如,MongoDB 会自动为新集合的metaFieldtimeField字段创建复合索引。 如果您没有为此字段提供值,则仅根据时间对数据进行分桶。

timeseries.granularity

整型

可选。如果设置 bucketRoundingSecondsbucketMaxSpanSeconds,请勿使用。

可能的值为 seconds(默认)、minutes、和 hours

granularity 设置为最接近连续输入时间戳之间时间的值。这可通过优化 MongoDB 在集合中存储数据的方式来提高性能。

有关粒度和桶间隔的更多信息,请参阅设置时间序列数据的粒度。

timeseries.bucketMaxSpanSeconds

整型

可选。与 bucketRoundingSeconds 结合使用以作为 granularity 的替代方案。设置同一存储桶中不同时间戳之间的最大时间间隔。

可能的值为 1-31536000。

6.3 版本中的新功能

timeseries.bucketRoundingSeconds

整型

可选。与 bucketMaxSpanSeconds 结合使用作为 granularity 的替代方案。必须等于 bucketMaxSpanSeconds

当文档需要新的存储桶时,MongoDB 会按此间隔对文档时间戳的值向下取整,以设置存储桶的最小开始时间。

6.3 版本中的新功能

expireAfterSeconds

整型

可选。通过指定文档过期后的秒数,启用自动删除时间序列集合中文档的功能。MongoDB 自动删除过期文档。请参阅设置自动删除时间序列集合 (TTL),获取更多信息。

其他不特定于时间序列集合的允许选项:

  • storageEngine

  • indexOptionDefaults

  • collation

  • writeConcern

  • comment

后退

创建和配置

在此页面上