2 回答
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以進(jìn)行聚合,首先使用 將日期字符串轉(zhuǎn)換為日期$toDate,并使用 跟蹤年份$year。然后你可以$match在給定的日期范圍內(nèi)的所有文件,最后$group是年份和$count:
YourModel.aggregate([
{ "$addFields": {
"year":{ "$year": {
"$toDate": "$date"
}
} }},
{
$match: {
// define your range of years here, it would be 2015 - 2016 in your case
year: {$gte: 2016, $lte: 2020}
}
},
{
$group: {
_id: {year: "$year"}
}
},
{
$count: "totalCountPerYearRange"
}
]);
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
只要日期字符串在數(shù)組中 - 使用 [] NOT {}(它定義了一個(gè)需要屬性:值對(duì)的對(duì)象),那么您就可以將字符串轉(zhuǎn)換為日期并進(jìn)行簡(jiǎn)單的比較。以下將返回一個(gè)數(shù)組,您可以在其中簡(jiǎn)單地獲取數(shù)組的長(zhǎng)度以進(jìn)行計(jì)數(shù)。
let myDates = [
"Thu Jan 07 2016",
"Tue Mar 01 2016",
"Wed May 25 2016",
"Sat Jun 25 2016",
"Sun Aug 14 2016",
"Fri Nov 18 2016",
"Fri Jan 06 2017",
"Sun Apr 16 2017",
"Sun May 21 2017",
"Sun Jul 30 2017",
"Fri Sep 22 2017",
"Sun Nov 12 2017",
"Sun Dec 24 2017"
]
let firstDate = new Date("Wed May 25 2016");
let lastDate = new Date("Thu May 25 2017");
let matches = myDates.filter(d => {if (new Date(d) >= firstDate && new Date(d) <= lastDate) return d});
console.log(matches);
console.log(matches.length);
添加回答
舉報(bào)
