0
0
MongoDBquery~5 mins

Time-series collections in MongoDB

Choose your learning style9 modes available
Introduction

Time-series collections help store data that changes over time, like temperature or stock prices, in an easy and efficient way.

Tracking temperature readings every minute from sensors.
Recording stock prices every second during trading hours.
Logging website visitor counts every hour.
Monitoring machine performance data continuously.
Syntax
MongoDB
db.createCollection("collectionName", {
  timeseries: {
    timeField: "timestamp",
    metaField: "metadata",
    granularity: "seconds" // or "minutes", "hours"
  }
})

timeField is the field that stores the time of each record.

metaField is optional and stores extra info about the data.

Examples
This creates a time-series collection for temperature data recorded every minute with sensor ID as metadata.
MongoDB
db.createCollection("temperatureReadings", {
  timeseries: {
    timeField: "time",
    metaField: "sensorId",
    granularity: "minutes"
  }
})
This creates a time-series collection for stock prices recorded every second without extra metadata.
MongoDB
db.createCollection("stockPrices", {
  timeseries: {
    timeField: "tradeTime",
    granularity: "seconds"
  }
})
Sample Program

This example creates a time-series collection for machine metrics, inserts three records, and then queries data for machine M1 sorted by time.

MongoDB
db.createCollection("machineMetrics", {
  timeseries: {
    timeField: "recordedAt",
    metaField: "machineId",
    granularity: "seconds"
  }
})

// Insert sample data
db.machineMetrics.insertMany([
  { recordedAt: new Date("2024-06-01T10:00:00Z"), machineId: "M1", temperature: 75, rpm: 1500 },
  { recordedAt: new Date("2024-06-01T10:00:05Z"), machineId: "M1", temperature: 76, rpm: 1520 },
  { recordedAt: new Date("2024-06-01T10:00:10Z"), machineId: "M2", temperature: 70, rpm: 1400 }
])

// Query data
db.machineMetrics.find({ machineId: "M1" }).sort({ recordedAt: 1 })
OutputSuccess
Important Notes

Time-series collections optimize storage and queries for data with timestamps.

Choosing the right granularity helps MongoDB manage data efficiently.

Use metaField to store information that stays the same for many records, like sensor or machine ID.

Summary

Time-series collections store data that changes over time efficiently.

They require a time field and optionally a metadata field.

They help with fast queries and better storage for time-based data.