$linearFill

Interpolates missing values in a sequence of documents using linear interpolation, useful for filling gaps in time-series or ordered data.

Syntax

{ $linearFill: { input: <expression>, sortBy: { <field>: <1 or -1> } } }

Parameters

inputobjectrequired

Field or expression to interpolate missing values for

sortByobjectrequired

Field and sort order (1 ascending, -1 descending) for interpolation

Examples

Interpolating missing sales data

Fill missing sales values using linear interpolation within store partitions

Query:

db.stores.aggregate([{ $match: { "company": { $in: ["First Up Consultants"] } } }, { $setWindowFields: { "partitionBy": "$name", "sortBy": { "storeOpeningDate": 1 }, "output": { "interpolatedSales": { "$linearFill": "$sales.totalSales" } } } }])

Output:

Stores with missing sales data filled using linear interpolation

Fill missing temperature readings

Interpolate missing values in time-series sensor data

Query:

db.sensors.aggregate([{ $setWindowFields: { "partitionBy": "$sensorId", "sortBy": { "timestamp": 1 }, "output": { "interpolatedTemp": { "$linearFill": "$temperature" } } } }])

Output:

Sensor readings with missing temperature values interpolated linearly

Related