2016-12-14 37 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的查询,显示时间(或在这种情况下,差异化经营),开始时间和结束时间有相似的结果:

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

注意,时间戳可以有不同的日期,所以$hour(聚合管道)可能无法正常工作。谁能帮忙?谢谢

+0

您可以使用$。减去的投影:{$项目:{_id: '$标识',持续时间:{$减: '$结束时间', '$开始时间']}}}, – 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]} 
    }} 
]) 
相关问题