自动创建时序集合
使用注解的形式,自动创建时序集合,省去手动创建时间
配置
- 使用MongoPlus的自动创建时序集合功能,只需开启自动创建时序集合配置即可
yaml
mongo-plus:
configuration:
auto-create-time-series: true #开启自动创建时序集合功能
注解
@TimeSeries
- 注解式时序集合自动创建
- 通过该注解,可以将指定实体类标注为时序集合
- 可以和
@CollectionName
注解互动,使用该注解配置的集合名称和数据库属性
属性 | 类型 | 必须指定 | 默认值 | 描述 |
---|---|---|---|---|
dataSource | String | 否 | 当前上下文 | 数据源,指定时间序列所在的数据源 |
timeField | String | 是 | 包含每个时间序列文档中的日期的字段的名称 | |
metaField | String | 否 | "" | 包含每个时间序列文档中的元数据的字段的名称 |
granularity | TimeSeriesGranularity | 否 | SECONDS | 指定时间序列的粒度 |
bucketMaxSpan | long | 否 | -1 | 设置存储桶中测量之间的最大时间跨度,以秒为单位 |
bucketRounding | long | 否 | -1 | 设置存储桶中测量之间的最大时间跨度,以秒为单位 |
示例
java
@TimeSeries(timeField = "$ts",metaField = "testMeta",granularity = TimeSeriesGranularity.SECONDS)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MongoPlus {
@ID
private String id;
@CollectionField("ts_test")
private LocalDateTime ts;
private Map<String,Object> testMeta;
private String name;
}
timeField
和metaField
属性可使用{@code $}标识,该操作将会字段值查找类中的该字段,不存在则直接返回该值,如
@TimeSeries(metaField="$field1"})