U kunt dit bereiken door de aggregatiebewerking te gebruiken. Er is $week aggregatiebewerking in mongodb.
Bepaal eerst de startdatum met behulp van de programmeertaal die u gebruikt.
Bij het volgen van de pijplijnbewerking, het tellen van het aantal documenten dat overeenkomt met een week. Je kunt het doen op elk veld/type aggregatie dat je nodig hebt.
pipeline = [
{
$match: {
timeStamp: {$gt: ISODate(startDate)},
}
},
{
$group: {
_id: {$week: '$timeStamp'},
documentCount: {$sum: 1}
}
}
];
db.mycollection.aggregate(pipeline)
Voor de bovenstaande twee documenten die u hebt opgegeven, is het resultaat
{ "_id" : 48, "documentCount" : 2 }
De _id
hierboven staat, 48e week, en er zijn twee documenten.
Ga via de link $week om te weten hoe mongodb de weeknummers telt.