2016-12-14 1 views
0

여기 내 데이터의 :mongodb (시간)의 타임 스탬프 차이를 계산하는 방법은 무엇입니까?

[ 
    { 
     id: 1, 
     starttime: ISODate("2015-08-24T00:00:00.000Z"), 
     endtime: ISODate("2015-08-24T07:00:00.000Z") 
    }, 
    { 
     id: 2, 
     starttime: ISODate("2015-08-24T20:00:00.000Z"), 
     endtime: ISODate("2015-08-25T01:00:00.000Z") 
    } 
] 

가 나는 MongoDB의 쿼리 기간을 표시 할 수 있습니다와 같은 결과를 STARTTIME 및 종료 시각의 (또는이 경우 차이 운전) :

[ {id:1, duration: 7}, {id: 2, duration: 5}] 

공지 타임 스탬프가 수 다른 날짜가 있으니 $hour (집계 파이프 라인)이 작동하지 않을 수 있습니다. 누구든지 도와 줄 수 있습니까?

+0

당신은 $를 빼기와 프로젝션을 사용하여 주셔서 감사합니다 : {$ 프로젝트 : {_id : '$ 아이디', 기간 : {$ 빼기 : [ '$의 종료 시각', '$의 STARTTIME를']}}} – Yoleth

+0

결과 : [{id : 1, duration : null}, {id : 2, duration : null}] – DennyHiu

+0

죄송합니다. 잘못된 변수 이름 $ subtract works가 있습니다. 결과는 다음과 같습니다. [{id : 기간 : 25200000}, {id : 2, 기간 : 18000000}). 초입니까? – DennyHiu

답변

2
db.collectionname.aggregate([ 
    {$project: { 
     duration: {$divide: [{$subtract: ["$endtime", "$starttime"]}, 3600000]} 
    }} 
]) 
관련 문제