문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

$dateToParts (애그리게이션)

이 페이지의 내용

  • 정의
  • 행동
  • 예제
$dateToParts

주어진 BSON Date 값의 구성 부분이 개별 속성으로 포함된 문서를 반환합니다. 반환되는 속성은 year, month, day, hour, minute, second, millisecond입니다.

iso8601 true 속성을 isoWeekYear isoWeekisoDayOfWeekhourminute로 설정하여 ISO 주 날짜 를 나타내는 부분을 반환할 수 있습니다. 대신. 그러면 속성이 , , , , , secondmillisecond 인 문서가 반환됩니다.

$dateToParts 표현식의 구문은 다음과 같습니다.

{
$dateToParts: {
'date' : <dateExpression>,
'timezone' : <timezone>,
'iso8601' : <boolean>
}
}

$dateToParts 는 다음 필드가 있는 문서를 사용합니다.

필드
필수/선택 사항
설명
date
필수 사항

버전 3.6에서 변경됨.

부분을 반환할 입력 날짜입니다. <dateExpression>날짜 ,타임스탬프 또는 ObjectID해석되는 모든 표현식 일 수 있습니다. 표현식에 대한 자세한 내용은 표현식을 참조하세요 .

timezone
옵션

날짜 서식을 지정하는 데 사용할 표준 시간대입니다. 기본적으로 $dateToParts 는 UTC를 사용합니다.

<timezone> 값이 다음 중 하나인 문자열로 계산되는 모든 표현식이 될 수 있습니다.

  • Olson 표준 시간대 식별자 "Europe/London"(예:"America/New_York" 또는 ), 또는

  • 형식의 UTC 오프셋입니다.

    • +/-[hh]:[mm], 예: "+04:45", 또는

    • +/-[hh][mm], 예: "-0530", 또는

    • +/-[hh]예: "+03".

표현식에 대한 자세한 내용은 표현식을 참조하세요 .

iso8601
옵션
true로 설정하면 출력 문서가 ISO 주 날짜 필드를 사용하도록 수정됩니다. 기본값은 false입니다.

<timezone> 필드에서 Olson 표준 시간대 ID를 사용할 때 MongoDB는 지정된 시간대에 적용 가능한 경우 DST 오프셋을 적용합니다.

예를 들어 sales 다음 문서가 있는 컬렉션을 생각해 보겠습니다.

{
"_id" : 1,
"item" : "abc",
"price" : 20,
"quantity" : 5,
"date" : ISODate("2017-05-20T10:24:51.303Z")
}

다음 애그리게이션은 MongoDB가 Olson 시간대 식별자에 대한 DST 오프셋을 처리하는 방법을 보여 줍니다. 이 예제에서는 $hour$minute 연산자를 사용하여 date 필드의 해당 부분을 반환합니다.

db.sales.aggregate([
{
$project: {
"nycHour": {
$hour: { date: "$date", timezone: "-05:00" }
},
"nycMinute": {
$minute: { date: "$date", timezone: "-05:00" }
},
"gmtHour": {
$hour: { date: "$date", timezone: "GMT" }
},
"gmtMinute": {
$minute: { date: "$date", timezone: "GMT" } },
"nycOlsonHour": {
$hour: { date: "$date", timezone: "America/New_York" }
},
"nycOlsonMinute": {
$minute: { date: "$date", timezone: "America/New_York" }
}
}
}])

이 연산은 다음과 같은 결과를 반환합니다.

{
"_id": 1,
"nycHour" : 5,
"nycMinute" : 24,
"gmtHour" : 10,
"gmtMinute" : 24,
"nycOlsonHour" : 6,
"nycOlsonMinute" : 24
}

다음 문서가 포함된 collection을 고려합니다:sales

{
"_id" : 2,
"item" : "abc",
"price" : 10,
"quantity" : 2,
"date" : ISODate("2017-01-01T01:29:09.123Z")
}

다음 애그리게이션은 $dateToParts 를 사용하여 date 필드의 구성 부분이 포함된 문서를 반환합니다.

db.sales.aggregate([
{
$project: {
date: {
$dateToParts: { date: "$date" }
},
date_iso: {
$dateToParts: { date: "$date", iso8601: true }
},
date_timezone: {
$dateToParts: { date: "$date", timezone: "America/New_York" }
}
}
}])

이 연산은 다음과 같은 결과를 반환합니다.

{
"_id" : 2,
"date" : {
"year" : 2017,
"month" : 1,
"day" : 1,
"hour" : 1,
"minute" : 29,
"second" : 9,
"millisecond" : 123
},
"date_iso" : {
"isoWeekYear" : 2016,
"isoWeek" : 52,
"isoDayOfWeek" : 7,
"hour" : 1,
"minute" : 29,
"second" : 9,
"millisecond" : 123
},
"date_timezone" : {
"year" : 2016,
"month" : 12,
"day" : 31,
"hour" : 20,
"minute" : 29,
"second" : 9,
"millisecond" : 123
}
}
← 날짜 빼기(집계)

이 페이지의 내용