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
```