or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

bulk-operations.mdcustom-types.mddocuments.mdevents-actions.mdfields-types.mdindex.mdinitialization.mdmigrations.mdquery-operations.mdtime-series.md

time-series.mddocs/

0

# Time Series

1

2

MongoDB time series collection configuration with granularity control and TTL support.

3

4

## Capabilities

5

6

### TimeSeriesConfig

7

8

```python { .api }

9

class TimeSeriesConfig(BaseModel):

10

"""Configuration for MongoDB time series collections."""

11

time_field: str # Field containing timestamp

12

meta_field: Optional[str] = None # Optional metadata field

13

granularity: Optional[Granularity] = None # Time granularity level

14

expire_after_seconds: Optional[int] = None # TTL for documents

15

```

16

17

### Granularity

18

19

```python { .api }

20

class Granularity(Enum):

21

"""Time series granularity options."""

22

seconds = "seconds"

23

minutes = "minutes"

24

hours = "hours"

25

```

26

27

## Usage Examples

28

29

```python

30

from beanie import Document, TimeSeriesConfig, Granularity

31

from datetime import datetime

32

33

class SensorReading(Document):

34

timestamp: datetime

35

sensor_id: str

36

temperature: float

37

humidity: float

38

39

class Settings:

40

collection = "sensor_readings"

41

timeseries = TimeSeriesConfig(

42

time_field="timestamp",

43

meta_field="sensor_id",

44

granularity=Granularity.minutes,

45

expire_after_seconds=86400 # 24 hours TTL

46

)

47

48

# Insert time series data

49

reading = SensorReading(

50

timestamp=datetime.utcnow(),

51

sensor_id="sensor_001",

52

temperature=23.5,

53

humidity=45.2

54

)

55

await reading.insert()

56

```