Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 Date/ISODate의 구성 요소(연도, 월, 일, 시간) 추출하는 방법

MongoDB에서 Date/ISODate의 구성 요소 추출하기

MongoDB에서 Date 또는 ISODate 값의 개별 구성 요소(연도, 월, 일, 시, 분, 초 등)를 가져오려면 먼저 날짜가 포함된 문서를 컬렉션에 생성해야 합니다. 이 글에서는 실제 예제를 통해 단계별로 확인해 보겠습니다.

1. 날짜 필드가 있는 문서 생성

먼저 현재 시각을 담은 "ShippingDate" 필드를 가진 문서를 컬렉션에 삽입합니다.

> db.componentOfDateDemo.insert({"ShippingDate":new Date()});
WriteResult({ "nInserted" : 1 })

2. find() 메서드로 전체 문서 조회

find() 메서드와 pretty()를 함께 사용하면 컬렉션의 모든 문서를 보기 좋게 출력할 수 있습니다.

> db.componentOfDateDemo.find().pretty()

실행 결과는 다음과 같습니다.

{
   "_id" : ObjectId("5c9e9d57d628fa4220163b68"),
   "ShippingDate" : ISODate("2019-03-29T22:33:59.776Z")
}

3. findOne()으로 단일 문서 가져오기

findOne() 메서드를 사용하면 조건에 맞는 첫 번째 문서 하나를 변수에 저장할 수 있습니다.

> var result=db.componentOfDateDemo.findOne();

이제 저장된 변수를 출력해 보겠습니다.

> result

출력 결과:

{
   "_id" : ObjectId("5c9e9d57d628fa4220163b68"),
   "ShippingDate" : ISODate("2019-03-29T22:33:59.776Z")
}

4. 날짜 필드만 추출하기

문서에서 ShippingDate 필드의 값만 가져오려면 점 표기법(dot notation)을 사용합니다.

> result.ShippingDate;

출력 결과:

ISODate("2019-03-29T22:33:59.776Z")

5. Date 객체에서 사용 가능한 메서드 확인

Date 객체가 제공하는 모든 메서드를 확인하려면 mongo 셸에서 객체 이름 뒤에 마침표(.)를 입력한 상태로 Tab 키를 두 번 누르면 됩니다.

> result.ShippingDate.[Tab 키 두 번 입력]

그러면 아래 스크린샷처럼 사용 가능한 함수 목록이 화면에 표시됩니다.

MongoDB에서 Date/ISODate의 구성 요소(연도, 월, 일, 시간) 추출하는 방법

6. 각 구성 요소 추출하기

위에서 확인한 함수들을 "ShippingDate" 필드에 적용하면 연도, 월, 일, 시간 등 원하는 구성 요소를 손쉽게 얻을 수 있습니다.

> result.ShippingDate.getFullYear()
2019
> result.ShippingDate.getSeconds();
59
> result.ShippingDate.getMinutes();
3
> result.ShippingDate.getHours();
4
> result.ShippingDate.getDate();
30
> result.ShippingDate.getMonth();
2

참고: JavaScript의 getMonth()는 월을 0부터 세어 반환합니다. 따라서 위 결과의 2는 3월(March)을 의미합니다. 또한 getHours(), getDate() 등의 값은 서버의 로컬 시간대를 기준으로 계산되므로, ISODate에 표시된 UTC 시간과 다르게 나올 수 있다는 점도 유의해야 합니다.