时间序列集合
Overview
在本指南中,您可以了解如何使用 Rust 驱动程序创建并与time-series collection交互。time-series collection可按时间顺序有效存储一段时间内的测量序列。time-series collection中的每个文档都包含以下信息:
随着时间的推移测量的数量
描述测量的元数据
测量的时间戳
下表描述了可以将数据存储在time-series collection中的一些示例情况。每行描述每个文档中的情况、测量的数量和元数据:
情况 | 测量数量 | Metadata |
---|---|---|
按行业记录月度销售额 | 收入(美元) | 公司、国家/地区 |
追踪天气变化 | 降水量 | 位置、传感器类型 |
记录房价波动 | 月租价格 | 位置、货币 |
本指南包括以下部分:
创建时间序列集合
重要
时间序列集合的服务器版本
要创建time-series collection并与之交互,必须连接到运行 MongoDB 5.0 或更高版本的部署。
要创建时间序列集合,请执行以下操作:
创建一个
TimeseriesOptions
实例,用于指定时间序列集合的属性。调用
create_collection()
方法并将集合名称作为参数传递。将
timeseries()
方法链接到create_collection()
方法。 将TimeseriesOptions
实例作为参数传递给timeseries()
。
例子
此示例使用以下配置在precipitation
数据库中创建sept2023
时间序列集合:
time_field
设置为"precipitation_mm"
meta_field
设置为"location"
granularity
设置为分钟
let db = client.database("precipitation"); let ts_opts = TimeseriesOptions::builder() .time_field("precipitation_mm".to_string()) .meta_field(Some("location".to_string())) .granularity(Some(TimeseriesGranularity::Minutes)) .build(); db.create_collection("sept2023") .timeseries(ts_opts) .await?;
要验证是否已成功创建time-series collection,请对数据库运行list_collections()
方法并打印结果:
let mut coll_list = db.list_collections().await?; while let Some(c) = coll_list.try_next().await? { println!("{:#?}", c); }
CollectionSpecification { name: "sept2023", collection_type: Timeseries, options: CreateCollectionOptions { ... timeseries: Some( TimeseriesOptions { time_field: "precipitation_mm", meta_field: Some( "location", ), granularity: Some( Minutes, ), }, ), ... }, ... }
查询时间序列集合
您可以使用与对其他集合执行读取或聚合操作时相同的语法和约定来查询时间序列集合。 要查找有关这些操作的更多信息,请参阅“其他信息”部分。
更多信息
要了解有关本指南中提到的概念的更多信息,请参阅以下服务器手册条目:
要学习;了解有关创建集合的更多信息,请参阅有关数据库和集合的指南。
要了解有关执行读取操作的更多信息,请参阅读取操作类别中的指南。
API 文档
要进一步了解本指南所提及的方法和类型,请参阅以下 API 文档: