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

So gruppieren Sie Dokumente nach Wochen in Mongodb

Sie können dies erreichen, indem Sie die Aggregatoperation verwenden. Es gibt $Woche Aggregationsvorgang in Mongodb.

Bestimmen Sie zunächst das Startdatum mit der von Ihnen verwendeten Programmiersprache.

In der folgenden Pipeline-Operation wird die Anzahl der übereinstimmenden Dokumente pro Woche gezählt. Sie können dies für jedes Feld/jede Art von Aggregation tun, die Sie benötigen.

pipeline = [
    {
        $match: {
            timeStamp: {$gt: ISODate(startDate)},
        }
    },
    {
        $group: {
            _id: {$week: '$timeStamp'},
            documentCount: {$sum: 1}
        }
    }
];
db.mycollection.aggregate(pipeline)

Für die beiden oben angegebenen Dokumente lautet das Ergebnis

{ "_id" : 48, "documentCount" : 2 }

Die _id oben steht, 48. Woche, und es gibt zwei Dokumente.

Gehen Sie über den Link $week um zu wissen, wie Mongodb die Wochenzahlen zählt.