首页 > 解决方案 > 不使用 mongoDB 每 6 小时间隔获取记录计数

问题描述

我需要通过使用 MongoDB 匹配用户输入值以每 6 小时时间间隔获取结果计数。我的查询是:

db.user.aggregate([
      { $match : { caseState : state, caseStatus:status } },
       { $group: {
    _id: {
      year: { $year: "$createdDate" },
      dayOfYear: { $dayOfYear: "$createdDate" },
      hour: { $hour: "$createdDate" },
      interval: {
        $subtract: [ 
          { $minute: "$createdDate" },
          { $mod: [{ $minute: "$createdDate"}, 60*6] }
        ]
      }
    }},
    count: { $sum: 1 }
  }
    ])
    .toArray((err, docs)=>{
        console.log('docs',docs);

    })

在控制台中,我得到的结果未定义。我的要求是通过匹配记录计数的用户输入值state and status来获取如下所示。

0-6           2
12-18         1
...............

根据我的代码,我得到了结果undefined

标签: mongodbaggregate

解决方案


推荐阅读