时间序列集合
概述
在本指南中,您可以了解如何使用Rust驱动程序创建和交互时间序列集合。时间序列集合能够高效地存储一段时间内测量的时间序列。时间序列集合中的每个文档包含以下信息:
随时间测量的数量
描述测量的元数据
测量的时间戳
以下表格描述了可以在时间序列集合中存储的一些数据示例。每一行描述了情况、测量的数量以及每个文档中的元数据:
情况 | 测量的数量 | 元数据 |
---|---|---|
按行业记录月度销售额 | 美元收入 | 公司,国家 |
追踪天气变化 | 降水水平 | 位置,传感器类型 |
记录房价波动 | 每月租金价格 | 位置,货币 |
本指南包括以下部分:
创建时间序列集合
重要
时间序列集合的服务器版本
要创建和交互时间序列集合,您必须连接到运行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?;
要验证您是否成功创建了时间序列集合,请在数据库上运行 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文档