$densify (Densificar)

Última atualização: 2026-10-09

$densify (Densificar)

$densify gera documentos em valores intermediários ausentes de um campo, tipicamente para interpolação de séries temporais — preenchendo lacunas em etapas fixas de hora em hora, diárias ou outras. Campos numéricos também são suportados. Especifique o campo, um intervalo (passo, unidade, limites) e um partitionByFields opcional.

CategoriaAgrupamento e Janela
Versão do MongoDB5.1+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $densify: { field: "<field>", range: { step: <step>, unit: <unit>, bounds: <bounds> }, partitionByFields: [ ... ] } }

⚙️ Parâmetros

fieldCampo a densificar; deve ser numérico ou uma data.
rangeObjeto que define step, unit (para datas) e o intervalo de limites.
partitionByFieldsCampos de partição; cada partição é densificada de forma independente.

Retorno:Fluxo de documentos com valores ausentes preenchidos

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $densify: preenche leituras de temperatura a cada hora
db.temperature.aggregate([
  { $densify: {
    field: 'date',
    range: { step: 1, unit: 'hour', bounds: 'full' }
  } }
])

Saída:

// As horas ausentes são preenchidas; outros campos são copiados

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QPara que serve o $densify?
AEle preenche pontos de tempo ausentes em um passo fixo, para que gráficos e interpolações funcionem em séries completas.
QQuais unidades estão disponíveis?
AAs unidades de tempo incluem minute, hour, day, week, month, quarter, year e outras.
QQuantos documentos o $densify produz?
ADepende do passo e dos limites: intervalos amplos com passos pequenos geram muitos documentos, então fique de olho na memória.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%