MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann nach Datum aggregiert werden, wenn im Aggregationsframework ein vollständiger Zeitstempel angegeben ist?

Sie können dies tun, indem Sie die folgenden Aggregationsoperatoren verwenden:

  • $gruppe
  • $ Jahr
  • $Monat
  • $dayOfMonth

Dies gibt Ihnen die Fehleranzahl für jedes Datum:

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

Dieses Beispiel geht davon aus, dass das Datumsfeld in Ihren Fehlerdokumenten date ist und vom Typ BSON Date. Es gibt auch einen Timestamp-Typ in MongoDB, aber von der Verwendung dieses Typs wird in der Dokumentation ausdrücklich abgeraten:

Hinweis:Der BSON-Zeitstempeltyp ist für die interne MongoDB-Verwendung vorgesehen. In den meisten Fällen werden Sie bei der Anwendungsentwicklung den BSON-Datumstyp verwenden wollen. Weitere Informationen finden Sie unter Datum.