sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur aggregerar man efter datum när en fullständig tidsstämpel ges i aggregeringsramverket?

Du kan göra detta genom att använda följande aggregeringsoperatorer:

  • $grupp
  • $år
  • $månad
  • $dayOfMonth

Detta ger dig antalet fel för varje datum:

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

Det här exemplet förutsätter att datumfältet i dina feldokument är date och av typen BSON Datum. Det finns också en tidsstämpeltyp i MongoDB, men användningen av denna typ avråds uttryckligen av dokumentationen:

Obs:Typen BSON Timestamp är för intern MongoDB-användning. I de flesta fall, i applikationsutveckling, vill du använda BSON-datumtypen. Se Datum för mer information.



  1. Ersätter inbäddat dokument i array i MongoDB

  2. Är det möjligt att få enstaka resultat sammanlagt?

  3. Hur man implementerar Redis Multi-Exec med Spring-data-Redis

  4. Django Selleri får uppgiftsräkning