Date() and Datetime
Date()
날짜를 문자열이나 날짜짜 객체로 반환합니다. 날짜에는 날짜 및 시간(datetime이라고 함)이 포함될 수 있습니다.
BSON 사양 객체에
Date
UTC 날짜/시간 이 포함되어 있음을 나타냅니다. UTC는 협정 세계시입니다. UTC 날짜/시간은 유닉스 시간(1월 1일, 1970 00:00:00 UTC) 이후의 밀리초 수를 나타내는 부호 없는 64비트 정수 값을 저장합니다.
호환성
다음 환경에서 호스팅되는 배포에 Date()
사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
다음 형식 중 하나를 지정할 수 있습니다.
Date()
현재 날짜를mongosh
문자열로 반환합니다.new Date()
현재 날짜를 Date 객체로 반환합니다.mongosh
는ISODate
도우미를 사용하여 Date 객체를 래핑합니다.ISODate
은 UTC입니다.
연도가 0
~ 9999
인 ISO-8601 날짜 문자열을 new Date()
생성자 또는 ISODate()
함수에 전달하여 특정 날짜를 지정할 수 있습니다. 이러한 함수는 다음 형식을 허용합니다.
new Date("<YYYY-mm-dd>")
지정된 날짜가 포함된ISODate
을(를) 반환합니다.new Date("<YYYY-mm-ddTHH:MM:ss>")
클라이언트의 현지 시간대로 날짜/시간을 지정하고 UTC로 날짜가 지정된ISODate
를 반환합니다.new Date("<YYYY-mm-ddTHH:MM:ssZ>")
는 날짜/시간을 UTC로 지정하고 지정된 날짜/시간(UTC)이 포함된ISODate
를 반환합니다.new Date(<integer>)
유닉스 시간(1970년 1월 1일) 이후의 날짜/시간을 밀리초로 지정하고 결과ISODate
인스턴스를 반환합니다.
행동
내부적으로 Date 객체는 유닉스 시간 (1970년 1월 1일) 이후의 밀리초 수를 나타내는 부호 있는 64비트 정수로 저장됩니다.
모든 데이터베이스 작업과 드라이버가 전체 64비트 범위를 지원하는 것은 아닙니다. 포함 범위 0
~ 9999
이내의 연도가 있는 날짜로 안전하게 작업할 수 있습니다.
예시
쿼리에 날짜 사용하기
products
collection에 _id
가 1
인 문서가 없는 경우, 다음 작업은 현재 날짜로 설정된 dateAdded
필드를 사용하여 문서를 삽입합니다.
db.products.updateOne( { _id: 1 }, { $set: { item: "apple" }, $setOnInsert: { dateAdded: new Date() } }, { upsert: true } )
날짜를 문자열로 반환
날짜를 문자열로 반환하려면 Date()
메서드를 사용합니다. 예시:
var myDateString = Date();
날짜를 Date
객체로 반환
mongosh
는 날짜 유형의 객체를 ISODate
헬퍼로 래핑합니다. 그러나 객체는 날짜 유형입니다.
다음 예시에서는 new Date()
을(를) 사용하여 지정된 UTC 날짜 시간이 있는 날짜 객체를 반환합니다.
var myDate = new Date("2016-05-18T16:00:00Z");
ISODate
객체 삽입 및 반환
날짜를 ISODate
객체로 지정할 수 있습니다.
다음 예시에서는 orderDate
필드에 ISODate
개의 객체가 있는 cakeSales
컬렉션을 생성합니다.
db.cakeSales.insertMany( [ { _id: 0, type: "chocolate", orderDate: new ISODate("2020-05-18T14:10:30Z") }, { _id: 1, type: "strawberry", orderDate: new ISODate("2021-03-20T11:30:05Z") }, { _id: 2, type: "vanilla", orderDate: new ISODate("2021-01-15T06:31:15Z") } ] )
다음 예시에서는 orderDate
가 $lt
연산자에 지정된 ISODate
보다 작은 문서를 반환합니다.
db.cakeSales.find( { orderDate: { $lt: ISODate("2021-02-25T10:03:46.000Z") } } )
출력 예시:
[ { _id: 0, type: 'chocolate', orderDate: ISODate("2020-05-18T14:10:30.000Z") }, { _id: 2, type: 'vanilla', orderDate: ISODate("2021-01-15T06:31:15.000Z") } ]