[MONGODB] 풀 타임 스탬프가 통합 프레임 워크에 주어 졌을 때 어떻게 날짜를 기준으로 집계하는?
MONGODB풀 타임 스탬프가 통합 프레임 워크에 주어 졌을 때 어떻게 날짜를 기준으로 집계하는?
나는 모든 오류가 날짜 필드를 전달 그래서, 오류의 컬렉션을 가지고있다. 어떻게 하루 오류 만 (즉, 하루의 시간을 제외) 집계 / 수 / 그룹 수 있습니까? 좀 스마트 프로젝션이 적용되어야한다 같아요.
해결법
-
==============================
1.다음과 같은 집계 연산자를 사용하여이 작업을 수행 할 수 있습니다 :
다음과 같은 집계 연산자를 사용하여이 작업을 수행 할 수 있습니다 :
이렇게하면 각 날짜에 대한 오류 수를 제공합니다 :
db.errors.aggregate( { $group : { _id: { year : { $year : "$date" }, month : { $month : "$date" }, day : { $dayOfMonth : "$date" }, }, count: { $sum: 1 } }} );
이 예에서는 오류 문서의 날짜 필드에 날짜를 입력 BSON 날짜로 가정합니다. 이 MongoDB의에서 타임 스탬프 유형은, 그러나 이러한 유형의 사용은 명시 적으로 문서에 의해 권장하지 않습니다 :
-
==============================
2.당신은 $ 프로젝트 (집계)를 사용하여 특정 날짜 형식 문자열에 타임 스탬프 필드를 변환 할 수 있습니다
당신은 $ 프로젝트 (집계)를 사용하여 특정 날짜 형식 문자열에 타임 스탬프 필드를 변환 할 수 있습니다
aggregate([ { '$project': { newFieldName: {'$dateToString': {format: '%Y-%m-%d', date: '$yourDateFieldName'}} } }, { '$group': { _id: {newFieldName: '$newFieldName'}, viewCount: {'$sum': 1} } }, {'$sort': {'_id.newFieldName': 1}} ], {})
from https://stackoverflow.com/questions/15657501/how-to-aggregate-by-date-when-a-full-timestamp-is-given-in-aggregation-framework by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 중첩 된 배열을 채울 몽구스 (0) | 2019.12.29 |
---|---|
[MONGODB] 인덱스를 사용하지 않는 쿼리를 찾거나 MongoDB를 둔화하는 방법 (0) | 2019.12.29 |
[MONGODB] 어떻게 데이터의 손실없이 MongoDB에 덮인 모음의 크기를 조정할 수 있습니까? (0) | 2019.12.29 |
[MONGODB] 어떻게 MongoDB를 자바 드라이버를 사용하는 $ 또는 쿼리를 만들 수 있습니까? (0) | 2019.12.29 |
[MONGODB] 기존 MongoDB의 항목에서 키 / 값 삭제 (0) | 2019.12.29 |