Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

$dateToParts (집계)

이 페이지의 내용

  • 정의
  • 행동
  • 예시
$dateToParts

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

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

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

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

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

필드
필수/선택 사항
설명

date

필수 사항

부품을 반환할 입력 날짜입니다. 은 Date ,Timestamp 또는 로 해석되는 ObjectId<dateExpression> 표현식 일 수 있습니다. For more information on expressions, see Expression Operators.

timezone

옵션

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

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

  • Olson Timezone Identifier(예: "Europe/London"또는 "America/New_York") 또는

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

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

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

    • +/-[hh], e.g. "+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
}
}

돌아가기

$dateSubtract

이 페이지의 내용