MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment regrouper par documents par semaine dans mongodb

Vous pouvez y parvenir en utilisant l'opération d'agrégation. Il y a $semaine opération d'agrégation dans mongodb.

Déterminez d'abord la date de début en utilisant le langage de programmation que vous utilisez.

Dans l'opération de pipeline suivante, compter le nombre de documents correspondant à une semaine. Vous pouvez le faire sur n'importe quel champ/type d'agrégation dont vous avez besoin.

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

Pour les deux documents ci-dessus que vous avez spécifiés, le résultat sera

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

Le _id ci-dessus dit, 48ème semaine, et il y a deux documents.

Passez par le lien $semaine pour savoir comment mongodb compte les numéros de semaine.