MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como agregar por data quando um carimbo de data/hora completo é fornecido na estrutura de agregação?


Você pode fazer isso usando os seguintes operadores de agregação:
  • $grupo
  • $ano
  • $mês
  • $dayOfMonth

Isso fornece a contagem de erros para cada data:
db.errors.aggregate(
    { $group : {
        _id: {
            year : { $year : "$date" },        
            month : { $month : "$date" },        
            day : { $dayOfMonth : "$date" },
        },
        count: { $sum: 1 }
    }}
);

Este exemplo assume que o campo de data em seus documentos de erro é date e do tipo BSON Data. Há também um tipo Timestamp no MongoDB, mas o uso desse tipo é explicitamente desencorajado pela documentação:

Nota:O tipo de carimbo de data/hora BSON é para uso interno do MongoDB. Na maioria dos casos, no desenvolvimento de aplicativos, você desejará usar o tipo de data BSON. Consulte Data para obter mais informações.