Sim, você pode fazer isso no banco de dados se usar uma Coleção de calendário ou seja, uma coleção auxiliar que é apenas uma lista de datas , sem folgas. Usando essa coleção de calendários, você pode montar uma agregação que:
- Usa o operador $lookup para juntar a coleção de calendários à sua coleção de registros diários
- Remodela os dados (usando $unwind , $group e $project conforme necessário) para converter os dados unidos (uma matriz de subdocumentos) na estrutura desejada
- Usa o operador ifnull em um estágio $project para garantir que o campo numItems receba um valor padrão de 0 nos documentos onde ainda não existe