gpt4 book ai didi

mongodb - 如何在mongodb中找到两个日期之间的时差

转载 作者:行者123 更新时间:2023-12-03 21:19:24 24 4
gpt4 key购买 nike

我将以下结构中的文档保存在我的 mongodb 中。

UserLogs


{
"_id":"111",
"studentID" : "1",
"loginTime" : "2019-05-01 09:40:00",
"logoutTime" : "2019-05-01 19:40:00"
},
{
"_id":"222",
"studentID" : "1",
"loginTime" : "2019-05-02 09:40:00",
"logoutTime" : "2019-05-02 20:40:00"
},
{
"_id":"333",
"studentID" : "2",
"loginTime" : "2019-05-02 09:40:00",
"logoutTime" : "2019-05-02 20:40:00"
}

是否可以查询 loginTime 和 logoutTime 之间的时间段的文档。 例如:超过 20 小时
mongodb version = 3.4

最佳答案

您可以使用以下聚合

db.collection.aggregate([
{ "$project": {
"difference": {
"$divide": [
{ "$subtract": ["$logoutTime", "$loginTime"] },
60 * 1000 * 60
]
}
}},
{ "$group": {
"_id": "$studentID",
"totalDifference": { "$sum": "$difference" }
}},
{ "$match": { "totalDifference": { "$gte": 20 }}}
])

您只需 $subtract loginTime来自 logoutTime它会给你减去的时间戳,然后只是 $divide 它与 3600000以小时为单位获取时间。

MongoPlayground

关于mongodb - 如何在mongodb中找到两个日期之间的时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56101773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com