MongoDB $month 运算符介绍

$month 运算符是 MongoDB 聚合管道中的一个日期操作符,它可以从日期字段中提取月份并用于聚合操作。

语法

$month 运算符的语法如下:

{ $month: <dateExpression> }

其中,<dateExpression> 表示一个日期表达式,可以是文档中的日期字段或者是 $dateFromString 运算符返回的日期对象。

使用场景

$month 运算符通常用于对日期进行聚合操作,如统计每个月的销售额、每月用户活跃量等。

示例

假设我们有以下订单文档:

{
  "_id": 1,
  "orderDate": ISODate("2022-02-28T08:00:00Z"),
  "total": 100
},
{
  "_id": 2,
  "orderDate": ISODate("2022-03-05T08:00:00Z"),
  "total": 200
},
{
  "_id": 3,
  "orderDate": ISODate("2022-03-15T08:00:00Z"),
  "total": 150
}

我们可以使用 $group$month 运算符来计算每个月的订单总额:

db.orders.aggregate([
  {
    $group: {
      _id: { $month: "$orderDate" },
      totalSales: { $sum: "$total" }
    }
  }
])

运行以上聚合操作后,将返回以下结果:

{ "_id" : 2, "totalSales" : 100 }
{ "_id" : 3, "totalSales" : 350 }

结论

$month 运算符是 MongoDB 聚合管道中的一个非常有用的日期操作符,它可以帮助我们对文档中的日期进行聚合操作,从而得到更有价值的分析结果。