반응형
집계 프레임워크에서 전체 타임스탬프가 제공될 때 날짜별로 집계하는 방법은 무엇입니까?
오류 모음이 있으므로 모든 오류는 다음이 포함됩니다.date
필드. DAY만(즉, 하루 중 시간 제외)으로 오류를 집계/카운트/그룹화하려면 어떻게 해야 합니까?제 생각에는, 어떤 똑똑한 투영법이 적용되어야 할 것 같습니다.
다음 집계 연산자를 사용하여 이 작업을 수행할 수 있습니다.
각 날짜에 대한 오류 수가 표시됩니다.
db.errors.aggregate(
{ $group : {
_id: {
year : { $year : "$date" },
month : { $month : "$date" },
day : { $dayOfMonth : "$date" },
},
count: { $sum: 1 }
}}
);
이 예제에서는 오류 문서의 날짜 필드를 다음과 같이 가정합니다.date
BSON Date 유형입니다.MongoDB에도 Timestamp 유형이 있지만 이 유형의 사용은 설명서에서 명시적으로 권장하지 않습니다.
참고: BSON 타임스탬프 유형은 내부 MongoDB용입니다.대부분의 경우 응용프로그램 개발에서 BSON 날짜 유형을 사용할 수 있습니다.자세한 내용은 날짜를 참조하십시오.
$project(집계)를 사용하여 타임스탬프 필드를 특정 날짜 형식의 문자열로 변환할 수 있습니다.
aggregate([
{
'$project': {
newFieldName: {'$dateToString': {format: '%Y-%m-%d', date: '$yourDateFieldName'}}
}
}, {
'$group': {
_id: {newFieldName: '$newFieldName'},
viewCount: {'$sum': 1}
}
},
{'$sort': {'_id.newFieldName': 1}}
], {})
mongo 2.6이 있기 때문에 $dateToString 함수는 에서 사용할 수 있습니다.aggregate
그런 식으로:
db.errors.aggregate([
{
$group : {
_id: { $dateToString: { format: "%Y-%m-%d", date: "$date" }},
count: { $sum: 1 }
}
}
]);
언급URL : https://stackoverflow.com/questions/15657501/how-to-aggregate-by-date-when-a-full-timestamp-is-given-in-aggregation-framework
반응형
'source' 카테고리의 다른 글
Angular Material 2 테이블 서버 측면 페이지 (0) | 2023.07.03 |
---|---|
dplyr을 사용한 data.frame의 전체 사례 필터(대소문자별 삭제) (0) | 2023.07.03 |
배경이 투명한 matplotlib에서 플롯을 내보내는 방법은 무엇입니까? (0) | 2023.07.03 |
특정 단추에 기본 '입력'을 설정하는 방법 (0) | 2023.07.03 |
'ThunkAction' 유형의 인수를 'AnyAction' 유형의 매개 변수에 할당할 수 없습니다. (0) | 2023.07.03 |