Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB로 타임 스탬프 차이를 시간 단위로 계산하는 방법은 무엇입니까?

<시간/>

타임스탬프 차이를 계산하려면 집계 프레임워크를 사용합니다. 먼저 문서로 컬렉션을 생성해 보겠습니다. −

> db.timestampDifferenceDemo.insertOne({ "MovieBeginningTime":new ISODate("2019-05-12 10:20:30"), "MovieEndingTime":new ISODate("2019-05-12 12:30:20) ")});{ "승인됨" :true, "insertedId" :ObjectId("5cd7ba1f6d78f205348bc644")}> db.timestampDifferenceDemo.insertOne({ "MovieBeginningTime":new ISODate("2019-045-10:0) ), "MovieEndingTime":new ISODate("2019-05-12 07:10:00")});{ "승인됨":true, "insertedId":ObjectId("5cd7ba3b6d78f205348bc645")}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

> db.timestampDifferenceDemo.find().pretty();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id":ObjectId("5cd7ba1f6d78f205348bc644"), "MovieBeginningTime":ISODate("2019-05-12T10:20:30Z"), "MovieEndingTime":ISODate("2019-025-1 ")}{ "_id":ObjectId("5cd7ba3b6d78f205348bc645"), "MovieBeginningTime":ISODate("2019-05-12T04:00:00Z"), "MovieEndingTime":ISODate("0Z0Z075-12 ")}

다음은 MongoDB에서 타임스탬프 차이를 계산하는 쿼리입니다(시간 단위) -

> db.timestampDifferenceDemo.aggregate([ {$project:{ DifferenceInHours:{$divide:[{$subtract:["$MovieEndingTime", "$MovieBeginningTime"]}, 3600000]} }}]); 

이것은 다음과 같은 출력을 생성합니다 -

<프리>{ "_id":ObjectId("5cd7ba1f6d78f205348bc644"), "DifferenceInHours":2.1638888888888888 }{ "_id"66"6s"6s"6s"6s"6s"6s":ObjectId("5cd7ba3b6d78f205348bc644")