【发布时间】:2019-05-26 01:24:12
【问题描述】:
我有一个结构如下的mongodb:
|User |Location |TimeOfVisit
|U1. |Cafeteria.|ISODate("2018-12-27T09:09:08.688Z")
|U2. |Reception.|ISODate("2018-12-27T09:12:45.688Z")
|U1. |Cafeteria.|ISODate("2018-12-27T09:45:38.688Z")
|U1. |Cafeteria.|ISODate("2018-12-27T09:47:38.688Z")
我需要找出用户在任何特定位置所花费的总时间。我已经阅读了多个博客,但还没有找到任何具体的答案。我有以下内容:
aggregate([
{
"$match": {
"User": {
"$eq": req.query.User
}
}
},
{
"$group": {
"_id": "$location",
"totalMiniutes": {
<<Get the time>>
}
}
}
【问题讨论】:
-
你如何计算这样的持续时间?您不存储到达和离开的时间戳
-
出发时间戳可以假设为表中的下一个timestamp。即|U2。 |Reception.|ISODate("2018-12-27T09:12:45.688Z") 可以是出发时间戳
标签: node.js mongodb mongoose mongodb-query aggregation-framework