Docs 菜单
Docs 主页
/ / /
Rust 驱动程序
/

时间序列集合

在此页面上

  • Overview
  • 创建时间序列集合
  • 例子
  • 查询时间序列集合
  • 更多信息
  • API 文档

在本指南中,您可以了解如何使用 Rust 驱动程序创建并与time-series collection交互。time-series collection可按时间顺序有效存储一段时间内的测量序列。time-series collection中的每个文档都包含以下信息:

  • 随着时间的推移测量的数量

  • 描述测量的元数据

  • 测量的时间戳

下表描述了可以将数据存储在time-series collection中的一些示例情况。每行描述每个文档中的情况、测量的数量和元数据:

情况
测量数量
Metadata

按行业记录月度销售额

收入(美元)

公司、国家/地区

追踪天气变化

降水量

位置、传感器类型

记录房价波动

月租价格

位置、货币

本指南包括以下部分:

  • 创建时间序列集合描述了创建时间序列集合的语法,并提供了示例代码

  • 查询时间序列集合描述了如何对时间序列集合执行操作

  • 附加信息提供了本指南中提到的类型和方法的资源和 API 文档链接

重要

时间序列集合的服务器版本

要创建time-series collection并与之交互,必须连接到运行 MongoDB 5.0 或更高版本的部署。

要创建时间序列集合,请执行以下操作:

  1. 创建一个 TimeseriesOptions实例,用于指定时间序列集合的属性。

  2. 调用create_collection()方法并将集合名称作为参数传递。

  3. 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 文档:

后退

事务