如何使用Laravel查询mongodb的YEAR(created_at)和GROUPBY YEAR(created_at)

时间:2019-04-29 12:11:53

标签: laravel mongodb

我想使用Laravel查询客户集合(mongodb),并且应该使用GROUPBY('YEAR(created_at)'),并且每年没有记录

1 个答案:

答案 0 :(得分:0)

根据您的评论,还在查询中添加了日期范围。

db.customer.aggregate(
  [
    {
        $match: {
          '$and': [
            {
              'created_at': {
                $gte: new Date('2018-01-01')
              }, 
              'created_at': {
                $lte: new Date('2019-12-31')
              }
            }
          ]
        }
      }, {
        $group: {
          _id: {
            year: {
              $year: "$created_at"
            }
          }, 
          count: {
            $sum: 1
          }
        }
      }
    ]
  )

输出就像

[
  {
    "_id": {
      "year": "2018"
    },
    "count": 12
  },
  {
    "_id": {
      "year": "2019"
    },
    "count": 19
  }
]