Możesz to osiągnąć za pomocą operacji agregacji. Jest $tydzień operacja agregacji w mongodb.
Najpierw określ datę początkową, używając dowolnego używanego języka programowania.
W kolejnej operacji potoku zliczanie pasujących dokumentów w tygodniu. Możesz to zrobić w dowolnym polu/rodzaju agregacji, którego potrzebujesz.
pipeline = [
{
$match: {
timeStamp: {$gt: ISODate(startDate)},
}
},
{
$group: {
_id: {$week: '$timeStamp'},
documentCount: {$sum: 1}
}
}
];
db.mycollection.aggregate(pipeline)
W przypadku powyższych dwóch dokumentów, które określiłeś, wynikiem będzie
{ "_id" : 48, "documentCount" : 2 }
_id
powyżej mówi, 48. tydzień i są dwa dokumenty.
Przejdź do linku $tydzień wiedzieć, jak mongodb liczy numery tygodni.