A fase de grupos está produzindo documentos com base no agrupamento em seu _id fornecido e na contagem do número de documentos da fase anterior que acabam no grupo. Portanto, uma contagem de zero seria o resultado de um documento sendo criado a partir de 0 documentos de entrada pertencentes ao grupo. Pensando dessa forma, fica claro que não há como o pipeline de agregação fazer isso por você. Ele não sabe quais são todos os períodos de tempo "ausentes" e não pode inventar os documentos apropriados do nada. Reaplicar seu conhecimento extra sobre os períodos de tempo ausentes para completar a imagem no final parece uma solução razoável (não "hacky") se você precisar ter uma contagem explícita de 0 para períodos de tempo vazios.