MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come aggregare per data quando viene fornito un timestamp completo nel framework di aggregazione?

Puoi farlo utilizzando i seguenti operatori di aggregazione:

  • $gruppo
  • $anno
  • $mese
  • $giornodelmese

Questo ti dà il conteggio degli errori per ogni data:

db.errors.aggregate(
    { $group : {
        _id: {
            year : { $year : "$date" },        
            month : { $month : "$date" },        
            day : { $dayOfMonth : "$date" },
        },
        count: { $sum: 1 }
    }}
);

Questo esempio presuppone che il campo della data nei documenti di errore sia date e di tipo BSON Date. Esiste anche un tipo Timestamp in MongoDB, ma l'uso di questo tipo è esplicitamente sconsigliato dalla documentazione:

Nota:il tipo BSON Timestamp è per uso interno MongoDB. Nella maggior parte dei casi, nello sviluppo di applicazioni, vorrai utilizzare il tipo di data BSON. Vedi Data per maggiori informazioni.