gpt4 book ai didi

mongodb - 如何在mongodb中获取两个日期的差异总和

转载 作者:IT老高 更新时间:2023-10-28 12:29:39 26 4
gpt4 key购买 nike

我想以分钟为单位计算开始时间和结束时间的差值。

{
"_id" : ObjectId("56cd544df7851e850d8b4573"),
"user_id" : "281",
"document_id" : "1455614372.pdf",
"page_number" : "1",
"starttime" : ISODate("48118-03-20T01:35:14Z"),
"endtime" : ISODate("48118-03-20T04:29:10Z")
}
{
"_id" : ObjectId("56cd544df7851e850d8b4574"),
"user_id" : "281",
"document_id" : "1455614372.pdf",
"page_number" : "1",
"starttime" : ISODate("48118-03-20T14:29:49Z"),
"endtime" : ISODate("48118-06-22T12:52:36Z")
}
{
"_id" : ObjectId("56cd544df7851e850d8b4575"),
"user_id" : "281",
"document_id" : "1455614372.pdf",
"page_number" : "2",
"starttime" : ISODate("48118-03-20T04:29:10Z"),
"endtime" : ISODate("48118-03-20T14:29:49Z")
}

我的收藏名称是 pdftracker。

最佳答案

您没有说要分组的字段,而是假设您想要“user_id”和“document_id”组合。不管它只是以下 $group 中的 _id 字段声明。

至于“间隔”,那么日期数学就在你身边,当你 $subtract一个 Date 对象与另一个对象,则结果是以“毫秒”表示的“差异”。所以这又只需要一点转换:

db.collection.aggregate([
{ "$group": {
"_id": { "user_id": "$user_id", "document_id": "$document_id" },
"totalMinites": {
"$sum": {
"$divide": [
{ "$subtract": [ "$endtime", "$starttime" ] },
1000 * 60
]
}
}
}}
])

简单的数学融入$sum为分组的总数。并且 1000 毫秒乘以 60 秒作为毫秒结果的除数转换为分钟。

关于mongodb - 如何在mongodb中获取两个日期的差异总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35619376/

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