Этап агрегации $fill используется для заполнения null или отсутствующих значений полей в документах MongoDB, что особенно полезно для обработки временных рядов и аналитических данных.
$fill поддерживает три основных подхода к заполнению пропущенных значений:
locf — Last Observation Carried Forward) — заполняет пробелы, повторяя самое последнее ненулевое значение{
$fill: {
output: {
temperature: { method: "linear" },
status: { method: "locf" },
region: { value: "unknown" }
}
}
}
Ты можешь использовать опцию partitionBy, чтобы применить логику заполнения независимо для сгруппированных подмножеств данных, например заполняя значения отдельно для каждого датчика или пользователя.
$densify$fill становится особенно мощным в сочетании с этапом $densify:
$densify сначала генерирует отсутствующие документы с регулярными интервалами (например, почасовые временные метки)$fill затем заполняет отсутствующие значения полей в этих сгенерированных документахТакая комбинация — это рекомендуемый паттерн для заполнения пробелов в анализе временных рядов.
$fill предоставляет гибкий, декларативный способ работы с неполными наборами данных без ручной трансформации данных, поддерживая несколько стратегий интерполяции, подходящих для разных аналитических задач.
Стадия $fill может заполнять отсутствующие значения с помощью линейной интерполяции, которая вычисляет предполагаемые значения на основе прямолинейной прогрессии между двумя известными соседними значениями.
Новый — ещё не проверен сообществом
Вы