mongodb 计算对象字段两个属性之间的差异
mongodb calculate difference between two attributes of object field
我有一个 mongodb 集合说 customer
并且我将状态更改保存在 status_changes
中作为对象,该对象具有具有状态的键和具有状态更改日期的值,如下所示:
Name | Status changes |
--------------------------------------
Anil | { "lead" : ISODate("2018-01-22T06:07:30.707Z"), "verification" : ISODate("2018-01-22T06:08:45.919Z"), "active" : ISODate("2018-01-22T06:11:24.468Z")}
---------------------------------------
Sudhir | { "lead" : ISODate("2017-08-20T06:07:30.707Z"), "verification" : ISODate("2017-08-22T06:08:45.919Z")}
考虑到总共可能有 3 种状态(lead
、verification
、active
,我如何获得以下格式的所有客户状态更改之间的平均时间) 并且状态更改只能在一个方向上进行,即 lead
->verification
->active
?
请注意我的问题与 不同,因为日期是同一对象字段的一部分。
你能试试这个吗,这将 return 以米尔为单位的过渡时间,我们可以将其转换为分钟或小时
db.col.aggregate(
[
{$project : {
leadToVerification : { $subtract : ["$status.verification" , "$status.lead"] },
verificationToActive : { $subtract : ["$status.active" , "$status.verification"] }
}
},
{$group : {_id : null, leadToVerification : {$avg : "$leadToVerification"}, verificationToActive : {$avg : "$verificationToActive"}}}
]
)
输出
{ "_id" : null, "leadToVerification" : 86475212, "verificationToActive" : 158549 }
我有一个 mongodb 集合说 customer
并且我将状态更改保存在 status_changes
中作为对象,该对象具有具有状态的键和具有状态更改日期的值,如下所示:
Name | Status changes |
--------------------------------------
Anil | { "lead" : ISODate("2018-01-22T06:07:30.707Z"), "verification" : ISODate("2018-01-22T06:08:45.919Z"), "active" : ISODate("2018-01-22T06:11:24.468Z")}
---------------------------------------
Sudhir | { "lead" : ISODate("2017-08-20T06:07:30.707Z"), "verification" : ISODate("2017-08-22T06:08:45.919Z")}
考虑到总共可能有 3 种状态(lead
、verification
、active
,我如何获得以下格式的所有客户状态更改之间的平均时间) 并且状态更改只能在一个方向上进行,即 lead
->verification
->active
?
请注意我的问题与
你能试试这个吗,这将 return 以米尔为单位的过渡时间,我们可以将其转换为分钟或小时
db.col.aggregate(
[
{$project : {
leadToVerification : { $subtract : ["$status.verification" , "$status.lead"] },
verificationToActive : { $subtract : ["$status.active" , "$status.verification"] }
}
},
{$group : {_id : null, leadToVerification : {$avg : "$leadToVerification"}, verificationToActive : {$avg : "$verificationToActive"}}}
]
)
输出
{ "_id" : null, "leadToVerification" : 86475212, "verificationToActive" : 158549 }