집계 프레임 워크를 사용하고 문서 필터링에 Date Aggregation Operators을 이용할 수 있습니다.
주어진 요일 사이에 문서를 필터링하려면 초기 $match
필터가 필요합니다.
그런 다음 $hour
연산자를 사용하여 날짜 필드에 시간 물약을 보유하고 새 필드를 만들 $project
파이프 라인을 사용할 수 있습니다. 그런 다음 추가 범위 $match
을 적용하여 시간 범위의 문서를 필터링합니다. 예를 들어
테이크 집계 프레임 워크 명심 당신이 반환 할 필드를 투사 할 것,이 방법을 보여줍니다 예 :
var filter = {};
filter.strBillDate = {
"$gte": new Date(req.params.fromdate), // start of week date
"$lt": new Date(req.params.todate) // end of week date
};
Sales.aggregate([
{ "$match": filter },
{
"$project": {
"strBillDate": 1,
"hourPart": { "$hour": "$strBillDate" },
/*
project other fields as necessary
*/
}
},
{ "$match": { "hourPart": { "$gte": 19, "$lte": 22 } } }
]).exec(function(err, salesdata) {
return res.send(salesdata);
});
더 효율적인 방법이 포함 것 $redact
연산자를 사용하는 단일 파이프 라인은 다음과 같습니다.