Docs 菜单
Docs 主页
/ /

关于查询时间序列数据

MongoDB 使用匹配的 元字段对文档进行分组,以优化时间序列数据的存储和查询延迟。您选择 metaField 对优化应用程序中的查询的影响最大。

查询时间序列集合的方式与查询标准 MongoDB 集合的方式相同。有关查询和聚合管道示例,请参阅查询时间序列集合。有关查询最佳实践的列表,请参阅查询最佳实践

针对时间序列数据的查询通常侧重于集合中的单个时间序列。例如,考虑使用以下模式跟踪股票数据的时间序列集合:

{
_id: 573a1397f29313caabce8347,
"ticker": "MDB",
"timestamp": ISODate("2024-07-24T13:45:00.000Z"),
"price": 248.21,
"volume": 6930
}

该集合有以下设置:

timeseries: {
timeField: "timestamp",
metaField: "ticker",
granularity: "seconds"
}

MongoDB 对具有匹配的 ticker 值的文档进行分组。服务器不必检查所有文档中所有字段的匹配项,而只需检查 metaField,在本例中为 ticker,即可将搜索范围缩小到唯一的时间序列。这符合预期的应用场景,即搜索单个股票上的活动。搜索有关 MongoDB 股票 (MDB) 信息的用户无需考虑 Amazon (AMZN) 的结果。

查询时间序列数据的第二个主要维度是时间。由于 MongoDB 对具有相同 metaField 值和接近 timeField 值的文档进行分组,这会进一步将查询范围缩小到存储桶范围。最近的事务都保存在内存中,因此可以轻松实时传输数据。

后退

分片集合

在此页面上