복붙노트

[MONGODB] 변환 ISO 날짜에 타임 스탬프에 몽고 쿼리

MONGODB

변환 ISO 날짜에 타임 스탬프에 몽고 쿼리

여기에 질문입니다

[
    { 
        "$project": {
            "formattedDate": { 
                "$dateToString": { "format": "%Y-%m-%d", "date": "$ceatedAt" } 
            },
            "createdAtMonth": { "$month": "$ceatedAt" },
            "rating": 1
        }
    },
    {
         "$group": {
             "_id": "$formattedDate",
             "average": { "$avg": "$rating" },
             "month": { "$first": "$createdAtMonth" },
         }
    }
]

나는 타임 스탬프의 날짜가 필요합니다. 그렇게하는 방법?

해결법

  1. ==============================

    1.사용 $는 피감수 및 감수 등의 새로운 날짜 ( "1970-01-01")와 같은 날짜에 산술 집계 연산자를 뺍니다.

    사용 $는 피감수 및 감수 등의 새로운 날짜 ( "1970-01-01")와 같은 날짜에 산술 집계 연산자를 뺍니다.

    db.collection.aggregate(
      {
        $project: { "timestamp": { $subtract: [ "$createdAt", new Date("1970-01-01") ] } } 
      }
    );
    

    문서

    { "_id": 1, "createdAt": ISODate("2016-09-01T14:35:14.952Z") }
    

    결과는

    { "_id": 1, "timestamp": NumberLong("1472740514952") }
    

    당신이 그룹에 원하는 경우 모두 타임 스탬프와 (년, 월, 일)에 의해 당신은 (각 밀리 초 및되지 않음) 매일 고유 될 수 있도록, 하루에 밀리 세컨드의 양에 의해 타임 스탬프 나눌 수 있습니다

    db.collection.aggregate(
      {
        $project: 
          {
            "timestampByDay":
              {
                $floor: 
                  {
                    $divide: 
                      [ 
                        { $subtract: [ "$createdAt", new Date("1970-01-01") ] }, 
                        24 * 60 * 60 * 1000 
                      ] 
                  }
              },
            "date": "$createdAt"
          }
      },
      {
        $group:
          {
            "_id": "$timestampByDay",
            "date": { $first: "$date" }
          }
      }
    );
    
  2. ==============================

    2.MongoDB를 4.0 타임 스탬프로 날짜를 변환 $ toLong 집계를 발표했다

    MongoDB를 4.0 타임 스탬프로 날짜를 변환 $ toLong 집계를 발표했다

    db.collection.aggregate([
      { "$project": {
        "createdAt": {
          "$toLong": "$createdAt"
        }
      }}
    ])
    

    당신은 여기를 시도 할 수 있습니다

  3. from https://stackoverflow.com/questions/39274311/convert-iso-date-to-timestamp-in-mongo-query by cc-by-sa and MIT license