MongoDB 날짜별 group aggregation

2020. 8. 10. 15:21서버 프로그래밍

이런 종류의 aggregation은 응용하기에 좋은 예제이다.

db.collection.aggregate([
    {
        "$group": {
            "_id": {
                "$let": {
                    "vars": {
                        "local_time": {
                            "$subtract": [
                                "$createdAt",
                                -32400000
                            ]
                        }
                    },
                    "in": {
                        "year": {
                            "$year": "$$local_time"
                        },
                        "month": {
                            "$month": "$$local_time"
                        },
                        "day": {
                            "$dayOfMonth": "$$local_time"
                        }
                    }
                }
            },
            "count": {
                "$sum": 1
            }
        }
    },
    {
        "$sort" :
        {
            "_id.year" : 1,
            "_id.month" : 1,
            "_id.day" : 1
        }
    }
])

https://medium.com/@yumenohosi/mongodb-aggregate%EC%97%90%EC%84%9C-localtime%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-920d7d487b49

 

MongoDB aggregate에서 localtime사용하기

MongoDB에서는 모든 날짜가 표준시를 기준으로 하고 있기 때문에, 통계 자료 뽑을 때 오차가 발생한다.

medium.com