2016-12-14 97 views
0

は私のデータです:mongodbのタイムスタンプ差を時間単位で計算する方法は?ここ

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

お知らせタイムスタンプができること:

[ 
    { 
     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") 
    } 
] 

は、私のような結果とSTARTTIMEと終了時刻のMongoDBのクエリは時間(または、この場合の差分演算)を表示することができます日付が異なるため、$hour(集約パイプライン)が機能しない可能性があります。誰も助けることができますか?

+0

あなたが$ substractと投影を使用することができますありがとう:{$プロジェクト:{_id: '$のID'、期間:{$引く:[ '$の終了時刻'、 '$のSTARTTIMEを']}}}、 – Yoleth

+0

結果:[{id:1、duration:null}、{id:2、duration:null}] – DennyHiu

+0

申し訳ありませんが、私は間違った変数名$ subtract worksを持っています。期間:25200000}、{id:2、期間:18000000})。これは秒ですか? – DennyHiu

答えて

2
db.collectionname.aggregate([ 
    {$project: { 
     duration: {$divide: [{$subtract: ["$endtime", "$starttime"]}, 3600000]} 
    }} 
]) 
関連する問題