Time Series
Time series data is a sequence of data points in which insights are gained by analyzing changes over time.
Time series data is generally composed of these components:
Time when the data point was recorded.
Metadata (sometimes referred to as source), which is a label or tag that uniquely identifies a series and rarely changes.
Measurements (sometimes referred to as metrics or values), which are the data points tracked at increments in time. Generally these are key-value pairs that change over time.
This table shows examples of time series data:
Example | Measurement | Metadata |
---|---|---|
Stock data | Stock price | Stock ticker, exchange |
Weather data | Temperature | Sensor identifier, location |
Website visitors | View count | URL |
For efficient time series data storage, MongoDB provides time series collections.
Time Series Collections
New in version 5.0.
Time series collections efficiently store time series data. In time series collections, writes are organized so that data from the same source is stored alongside other data points from a similar point in time.
You can create time series collections in the UI for deployments hosted in MongoDB Atlas.
Benefits
Compared to normal collections, storing time series data in time series collections improves query efficiency and reduces the disk usage for time series data and secondary indexes. MongoDB 6.3 and later automatically creates a compound index on the time and metadata fields for new time series collections.
Time series collections use an underlying columnar storage format and store data in time-order. This format provides the following benefits:
Reduced complexity for working with time series data
Improved query efficiency
Reduced disk usage
Reduced I/O for read operations
Increased WiredTiger cache usage
Behavior
Time series collections behave like typical collections. You insert and query data as usual.
MongoDB treats time series collections as writable non-materialized views backed by an internal collection. When you insert data, the internal collection automatically organizes time series data into an optimized storage format.
Starting in MongoDB 6.3: if you create a new time series collection, MongoDB also generates a compound index on the metaField and timeField fields. To improve query performance, queries on time series collections use the new compound index. The compound index also uses the optimized storage format.
Tip
To improve query performance, you can manually add secondary indexes on measurement fields or any field in your time series collection.
Important
Backward-Incompatible Feature
You must drop time series collections before downgrading:
MongoDB 6.0 or later to MongoDB 5.0.7 or earlier.
MongoDB 5.3 to MongoDB 5.0.5 or earlier.
Warning
Do not attempt to create a time series collection or view with the
name system.profile
. MongoDB 6.3 and later versions return an
IllegalOperation
error if you attempt to do so. Earlier MongoDB
versions crash.
Get Started
To get started with time series collections, see Create and Query a Time Series Collection.