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

Hvordan aggregeres efter dato, når et fuldt tidsstempel er givet i aggregeringsramme?

Du kan gøre dette ved at bruge følgende aggregeringsoperatorer:

  • $gruppe
  • $år
  • $måned
  • $dayOfMonth

Dette giver dig fejlantallet for hver dato:

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

Dette eksempel antager, at datofeltet i dine fejldokumenter er date og af typen BSON Dato. Der er også en tidsstempeltype i MongoDB, men brug af denne type frarådes udtrykkeligt af dokumentationen:

Bemærk:BSON-tidsstempeltypen er til intern MongoDB-brug. I de fleste tilfælde vil du i applikationsudvikling ønske at bruge BSON-datotypen. Se Dato for mere information.



  1. Kan ikke oprette forbindelse til Redis fra Docker

  2. Sådan bruger du Spring Boot med MongoDB

  3. Find at bruge _id, der ikke fungerer med aggregering

  4. MongoDB 'kan ikke finde indeks for $geoNear-forespørgsel'