[Database] MongoDB Date Method

게맛살맛게·2021년 12월 24일
0

DB

목록 보기
21/23

JS Date 객체

JavaScript Date 객체는 시간의 한 점을 플랫폼에 종속되지 않는 형태로 나타냄
Date 객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이밀리초로 나타내는 정수

MongoDB의 시간 처리

JavaScript의 Date 객체를 활용

시간데이터 입력

> db.datecoll.insert({_id : 1, name : '가나다', dt : ISODate()})
WriteResult({ "nInserted" : 1 })
> db.datecoll.insert({_id : 2, name : 'abc', dt : ISODate("2020-01-01")})
WriteResult({ "nInserted" : 1 })
> db.datecoll.insert({_id : 3, name : 'xyz', dt : ISODate("2021-05-25 13:10")})
WriteResult({ "nInserted" : 1 })
> db.datecoll.insert({_id : 4, name : 'lmn', dt : ISODate("2021-05-25 13:05")})
WriteResult({ "nInserted" : 1 })
> db.datecoll.insert({_id : 5, name : 'ㅋㅋ', dt : ISODate("2020-10-05")})
WriteResult({ "nInserted" : 1 })
> db.datecoll.insert({_id : 6, name : 'mmm', dt : new Date()})
WriteResult({ "nInserted" : 1 })
> db.datecoll.insert({_id : 7, name : 'kkk', dt : ISODate("1998-11-07T00:00:00Z")})
WriteResult({ "nInserted" : 1 })

> db.datecoll.find()
{ "_id" : 1, "name" : "가나다", "dt" : ISODate("2021-12-24T01:11:56.128Z") }
{ "_id" : 2, "name" : "abc", "dt" : ISODate("2020-01-01T00:00:00Z") }
{ "_id" : 3, "name" : "xyz", "dt" : ISODate("2021-05-25T13:10:00Z") }
{ "_id" : 4, "name" : "lmn", "dt" : ISODate("2021-05-25T13:05:00Z") }
{ "_id" : 5, "name" : "ㅋㅋ", "dt" : ISODate("2020-10-05T00:00:00Z") }
{ "_id" : 6, "name" : "mmm", "dt" : ISODate("2021-12-24T01:11:56.182Z") }
{ "_id" : 7, "name" : "kkk", "dt" : ISODate("1998-11-07T00:00:00Z") }

시간데이터 출력

년 출력

> var v = db.datecoll.find()
> while(v.hasNext()) {
     var d = v.next();
     print(d.dt.getYear()+1900)
    }
2021
2020
2021
2021
2020
2021
1998
> db.datecoll.find().forEach(		// forEach : parameter 함수 필요
     function(c) {			// 익명 함수 생성 후 바로 사용
     print(c.dt.getFullYear());
     }
    )
2021
2020
2021
2021
2020
2021
1998

> db.datecoll.find().map(	// 맵 함수 사용 배열로 출력
     function(c) {		// anonymous function
     c = c.dt.getFullYear();
     return c;
     }
    )
[ 2021, 2020, 2021, 2021, 2020, 2021, 1998 ]

> db.datecoll.find().forEach(
     function(doc) {		// anonymous function
     if(doc.dt.getFullYear() == 2021)
     	print(doc._id);
     print(doc.name);
     print(doc.dt)
     }
    )
1
가나다
Fri Dec 24 2021 10:11:56 GMT+0900
abc
Wed Jan 01 2020 09:00:00 GMT+0900
3
xyz
Tue May 25 2021 22:10:00 GMT+0900
4
lmn
Tue May 25 2021 22:05:00 GMT+0900
ㅋㅋ
Mon Oct 05 2020 09:00:00 GMT+0900
6
mmm
Fri Dec 24 2021 10:11:56 GMT+0900
kkk
Sat Nov 07 1998 09:00:00 GMT+0900
profile
IT 기술블로그

0개의 댓글