首页 > 解决方案 > 如何获取 MongoDB 集合中所有对象的总持续时间?

问题描述

我正在使用 MongoDB 3.4.18。我有以下集合名称:student_details。它里面的数据是这样的:

{
_id : ObjectID(generated_id),
in_time : <student_registered_in_time>
student_id : 'abc',
out_time: <student_registered_out_time>,
date_r: <date_in_ISO_FORMAT>
} , 
{
 _id : ObjectID(generated_id),
 in_time : <student_registered_in_time>
 student_id : 'def',
 out_time: <student_registered_out_time>,
 date_r: <date_in_ISO_FORMAT>
} 

我想打印学生在特定日期student_id(比方说abc)花费的总时间。例如,输出应该是

{
'student_id' : 'abc', 
'total_time_spent': 'total_time_spent_in_minutes'
'date': date
}

提前致谢。

我已经尝试了以下方法。

  db.student_details.aggregate([
        { 
        $match: {
          date_r: {
            $gte: ISODate("2018-11-01T00:00:00.000Z"),
            $lt: ISODate("2018-11-31T23:59:59.000Z")
          } , 
          student_id : 'abc',    
        }
      }, {
        $group: {
          total: {
            $sum: <confused_about_this_part>
          }
        }
      }
    ]);

标签: mongodbmongodb-queryaggregation

解决方案


推荐阅读