MongoDB聚合运算符;$dateToParts

$dateToParts聚合运算符将日期表达式拆分成多个字段放在一个文档返回,属性有yearmonthdayhourminutesecondmillisecond。如果iso8601属性设置为true,返回的各部分用ISO周日期返回,属性分别是:isoWeekYearisoWeekisoDayOfWeekhourminutesecondmillisecond

语法

{
    $dateToParts: {
        'date' : <dateExpression>,
        'timezone' : <timezone>,
        'iso8601' : <boolean>
    }
}

字段说明:

字段 是否必须 描述
date <dateExpression>可以是日期、时间戳或对象Id表达式
timezone 执行操作的时区,<tzExpression>必须是能被解析为奥尔森时区标识符格式的字符串或UTC偏移量,如果timezone不指定,返回值显示为UTC
iso8601 如果设置为true,则修改输出文档以使用ISO周日期字段。默认为false

使用

<timezone>字段中使用Olson时区标识符时,如果适用于指定时区,MongoDB 会应用 DST 偏移量。

例如,集合sales有下列的文档:

{
   "_id" : 1,
   "item" : "abc",
   "price" : 20,
   "quantity" : 5,
   "date" : ISODate("2017-05-20T10:24:51.303Z")
}

下面的聚合说明了MongoDB如何处理Olson时区标识符的DST偏移量。示例使用$hour$minute操作符返回日期字段的相应部分:

db.sales.aggregate([
{
   $project: {
      "nycHour": {
         $hour: { date: "$date", timezone: "-05:00" }
       },
       "nycMinute": {
          $minute: { date: "$date", timezone: "-05:00" }
       },
       "gmtHour": {
          $hour: { date: "$date", timezone: "GMT" }
       },
       "gmtMinute": {
          $minute: { date: "$date", timezone: "GMT" } },
       "nycOlsonHour": {
          $hour: { date: "$date", timezone: "America/New_York" }
       },
       "nycOlsonMinute": {
          $minute: { date: "$date", timezone: "America/New_York" }
       }
   }
}])

操作返回以下结果:

{
   "_id": 1,
   "nycHour" : 5,
   "nycMinute" : 24,
   "gmtHour" : 10,
   "gmtMinute" : 24,
   "nycOlsonHour" : 6,
   "nycOlsonMinute" : 24
}

举例

下面的sales集合有以下文档:

{
  "_id" : 2,
  "item" : "abc",
  "price" : 10,
  "quantity" : 2,
  "date" : ISODate("2017-01-01T01:29:09.123Z")
}

下面的聚合使用$dateToParts返回包含日期字段各组成部分的文档。

 db.sales.aggregate([
 {
    $project: {
       date: {
          $dateToParts: { date: "$date" }
       },
       date_iso: {
          $dateToParts: { date: "$date", iso8601: true }
       },
       date_timezone: {
          $dateToParts: { date: "$date", timezone: "America/New_York" }
       }
    }
}])

操作返回下面的结果:

{
   "_id" : 2,
   "date" : {
      "year" : 2017,
      "month" : 1,
      "day" : 1,
      "hour" : 1,
      "minute" : 29,
      "second" : 9,
      "millisecond" : 123
   },
   "date_iso" : {
      "isoWeekYear" : 2016,
      "isoWeek" : 52,
      "isoDayOfWeek" : 7,
      "hour" : 1,
      "minute" : 29,
      "second" : 9,
      "millisecond" : 123
   },
   "date_timezone" : {
      "year" : 2016,
      "month" : 12,
      "day" : 31,
      "hour" : 20,
      "minute" : 29,
      "second" : 9,
      "millisecond" : 123
   }
}

相关推荐

  1. MongoDB聚合运算符;$dateToParts

    2024-03-09 23:56:02       53 阅读
  2. MongoDB聚合运算符:$add

    2024-03-09 23:56:02       55 阅读
  3. MongoDB聚合运算符:$arrayToObject

    2024-03-09 23:56:02       52 阅读
  4. MongoDB聚合运算符:$dayOfWeek

    2024-03-09 23:56:02       53 阅读
  5. MongoDB聚合运算符:$dayOfMonth

    2024-03-09 23:56:02       51 阅读
  6. MongoDB聚合运算符;$dateToString

    2024-03-09 23:56:02       48 阅读
  7. MongoDB聚合运算符:$dayOfYear

    2024-03-09 23:56:02       48 阅读
  8. MongoDB聚合运算符:$denseRank

    2024-03-09 23:56:02       42 阅读
  9. MongoDB聚合运算符:$dateTrunc

    2024-03-09 23:56:02       45 阅读
  10. MongoDB聚合运算符:$divide

    2024-03-09 23:56:02       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-09 23:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-09 23:56:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-09 23:56:02       82 阅读
  4. Python语言-面向对象

    2024-03-09 23:56:02       91 阅读

热门阅读

  1. WPF 单击移动窗口 MouseLeftButtonDown 事件

    2024-03-09 23:56:02       45 阅读
  2. 每天一个数据分析题(一百八十九)

    2024-03-09 23:56:02       48 阅读
  3. Kafka 之 AdminClient 配置

    2024-03-09 23:56:02       41 阅读
  4. 小白跟做江科大51单片机之DS18B02按键控制效果

    2024-03-09 23:56:02       38 阅读
  5. 设计模式 工厂模式

    2024-03-09 23:56:02       42 阅读
  6. MongoDB在业务中的应用

    2024-03-09 23:56:02       44 阅读
  7. LightDB24.1 XMLELEMENT支持省略NAME关键字

    2024-03-09 23:56:02       37 阅读
  8. Android APP启动流程解析

    2024-03-09 23:56:02       37 阅读