com.anwen.mongo.annotation.collection.TimeSeries Maven / Gradle / Ivy
package com.anwen.mongo.annotation.collection;
import com.mongodb.client.model.TimeSeriesGranularity;
import java.lang.annotation.*;
/**
* 指定为时间序列集合
* @author anwen
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TimeSeries {
/**
* 数据源,指定时间序列所在的数据源
* @date 2024/8/27 01:35
*/
String dataSource() default "";
/**
* 包含每个时间序列文档中的日期的字段的名称
* 可使用{@code $}标识,该操作将会字段值查找类中的该字段,不存在则直接返回该值,如:
*
* {@code @TimeSeries("$field1"})}
*
* @date 2024/8/27 01:23
*/
String timeField();
/**
* 包含每个时间序列文档中的元数据的字段的名称
* 可使用{@code $}标识,该操作将会字段值查找类中的该字段,不存在则直接返回该值,如:
*
* {@code @TimeSeries(metaField="$field1"})}
*
* @date 2024/8/27 01:23
*/
String metaField() default "";
/**
* 指定时间序列的粒度
* @date 2024/8/27 01:23
*/
TimeSeriesGranularity granularity() default TimeSeriesGranularity.SECONDS;
/**
* 设置存储桶中测量之间的最大时间跨度,以秒为单位
* @date 2024/8/27 01:30
*/
long bucketMaxSpan() default -1;
/**
* 指定确定新存储桶的起始时间戳的时间间隔,以秒为单位
* @date 2024/8/27 01:31
*/
long bucketRounding() default -1;
/**
* 指定文档过期的秒数
* @date 2024/8/27 16:00
*/
long expireAfter() default -1;
}