To create a MongoDB time series collection, define a TimeSeriesConfig object within the Settings inner class of your Document.
Compatibility Requirements:
- Time series collections require MongoDB 5.0 or higher.
- The fields
bucket_max_span_seconds and bucket_rounding_seconds require MongoDB 6.3 or higher.
The TimeSeriesConfig fields map directly to MongoDB's time series creation parameters.
from datetime import datetime
from beanie import Document, TimeSeriesConfig, Granularity
from pydantic import Field
class Sample(Document):
ts: datetime = Field(default_factory=datetime.now)
meta: str
class Settings:
timeseries = TimeSeriesConfig(
time_field="ts", # Required
meta_field="meta", # Optional
granularity=Granularity.hours, # Optional
bucket_max_span_seconds=3600, # Optional (Requires MongoDB 6.3+)
bucket_rounding_seconds=3600, # Optional (Requires MongoDB 6.3+)
expire_after_seconds=2 # Optional
)