MongoDB图表如何获取createdAt和updatedAt的时差

MongoDB图表如何获取createdAt和updatedAt的时差,mongodb,charts,mongodb-query,aggregation-framework,mongodb-charts,Mongodb,Charts,Mongodb Query,Aggregation Framework,Mongodb Charts,样本数据 "id": 1 "createdAt": { "$date": "2020-09-29T01:52:10.199Z" }, "updatedAt": { "$date": "2020-09-29T02:55:10.199Z" } "id": 2 "createdAt": { &

样本数据

"id": 1
"createdAt": {
     "$date": "2020-09-29T01:52:10.199Z"
},
"updatedAt": {
     "$date": "2020-09-29T02:55:10.199Z"
}

"id": 2
"createdAt": {
     "$date": "2020-09-29T01:52:10.199Z"
},
"updatedAt": {
     "$date": "2020-09-29T01:55:10.199Z"
}
代码:

输出:

"id": 1
"createdAt": {
     "$date": "2020-09-29T01:52:10.199Z"
},
"updatedAt": {
     "$date": "2020-09-29T01:55:10.199Z"
}
timeDifference: -695752959
预期产量

"id": 1
"createdAt": {
     "$date": "2020-09-29T01:52:10.199Z"
},
"updatedAt": {
     "$date": "2020-09-29T01:55:10.199Z"
}
timeDifference: 1 hr 3 minutes / 1:03:00 any of the 2

"id": 2
"createdAt": {
     "$date": "2020-09-29T01:52:10.199Z"
},
"updatedAt": {
     "$date": "2020-09-29T01:55:10.199Z"
}
timeDifference: 3 minutes / 0:03:00 any of the 2

averageDiff: 30 minutes // sample
我想获得createdAt和updatedAt字段的时差,并获得时间的平均值,以便在MongoDB图表上显示。有什么建议吗?

尽你所能

结果是几个小时。通过更改数字,您可以在天/秒内获得它。默认值为毫秒。

您可以得到的最佳值

db.orders.aggregate([ { 
$project: { 
    products: 1, 
  dateDifference: {$divide: [{$subtract: ["$updatedAt", "$createdAt"]}, 3600000]}
} }])
结果是几个小时。通过更改数字,您可以在天/秒内获得它。默认值为毫秒

db.orders.aggregate([ { 
$project: { 
    products: 1, 
  dateDifference: {$divide: [{$subtract: ["$updatedAt", "$createdAt"]}, 3600000]}
} }])
此查询将以小时为单位提供时间戳


此查询将以小时为单位提供时间戳。

您将从查询中获得毫秒,我建议最好使用该毫秒在客户端语言中执行。您好,@turivishal我计划在MongoDB图表中执行此操作。这是否可以得到我的createdAt和updatedAt字段的平均时间?@PinkyPromise这个答案有用吗?@Gibbs是的,下面的答案也很好。谢谢。你能批准/投票吗?你的查询将得到毫秒,我建议最好用客户端语言使用毫秒。嗨,@turivishal我计划在MongoDB图表中这样做。这是否可以得到我的createdAt和updatedAt字段的平均时间?@PinkyPromise这个答案有用吗?@Gibbs是的,下面的答案也很好。谢谢。你能批准/投赞成票吗?
db.orders.aggregate([ { 
$project: { 
    products: 1, 
  dateDifference: {$divide: [{$subtract: ["$updatedAt", "$createdAt"]}, 3600000]}
} }])