MongoDB聚合运算符:$minute

发布于:2024-04-09 ⋅ 阅读:(143) ⋅ 点赞:(0)

文章目录


$minute聚合运算符返回日期中分钟部分的数字值为0到59之间

语法

{ $minute: <dateExpression> }

参数说明:

  • <dateExpression>为可解析为Date、Timestamp或ObjectID
  • 或者参数也可以是一个文档:
    { date: <dateExpression>, timezone: <tzExpression> }
    • timezone为可选参数,用于指定运算时的时区
    • <tzExpression>为字符串或字符串表达式,其值为奥尔森时区标识符或UTC偏移,如果不指定,则默认为UTC。
      奥尔森时区标识符:“America/New_York”、“Europe/London”、“GMT”
      UTC偏移量:+/-[hh]:[mm] 如: “+04:45”;+/-[hh][mm],如: “-0530”;+/-[hh],如:“+03”

使用

参考下面的例子来说明:

例1:

{ $minute: new Date("2016-01-01T12:01:00Z") }

结果:1

例2:

{ $minute: { date: new Date("Jan 7, 2003") } }

结果:0

例3:

{ $minute: {
    date: new Date("2016-01-01T12:01:00Z"),
    timezone: "Canada/Newfoundland"
} }

结果:31

例4:

{ $minute: {
    date: ISODate("1998-11-07T00:40:00Z"),
    timezone: "+0530"
} }

结果:10

例5:

{ $minute: {
    date: ISODate("2017-10-19T00:00:00Z"),
    timezone: "+0530"
} }

结果:0

例6:

{ $minute: "March 28, 1976" }

结果:error

例7:

{ $minute: Date("2016-01-01") }

结果:error

例8:

{ $minute: "2009-04-09" }

结果:error

举例

salse集合有下面的文档:

{
  "_id" : 1,
  "item" : "abc",
  "price" : 10,
  "quantity" : 2,
  "date" : ISODate("2014-01-01T08:15:39.736Z")
}

下面的聚合使用$minute和其他的日期表达式来分解日期字段

db.sales.aggregate(
   [
     {
       $project:
         {
           year: { $year: "$date" },
           month: { $month: "$date" },
           day: { $dayOfMonth: "$date" },
           hour: { $minute: "$date" },
           minutes: { $minute: "$date" },
           seconds: { $second: "$date" },
           milliseconds: { $minute: "$date" },
           dayOfYear: { $dayOfYear: "$date" },
           dayOfWeek: { $dayOfWeek: "$date" }
         }
     }
   ]
)

操作返回下面的结果:

{
  "_id" : 1,
  "year" : 2014,
  "month" : 1,
  "day" : 1,
  "hour" : 8,
  "minutes" : 15,
  "seconds" : 39,
  "milliseconds" : 736,
  "dayOfYear" : 1,
  "dayOfWeek" : 4,
  "week" : 0
}

网站公告

今日签到

点亮在社区的每一天
去签到