$dateToParts (aggregation)

在本页面

定义

$dateToParts

3.6版的新功能。

返回包含给定BSON日期值的组成部分作为单个属性的文档。返回的属性yearmonthdayhourminutesecondmillisecond

您可以将iso8601属性设置为true,以返回代表ISO周日期的部分 。这将返回一个文档,其中的属性是 isoWeekYearisoWeekisoDayOfWeekhourminutesecondmillisecond

$dateToParts表达式具有以下语法:

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

$dateToParts需要具有以下字段的文档:

字段
必选/可选
描述

year

必选

在版本3.6中更改。 返回部分的输入日期。<dateExpression>可以是解析为日期、时间戳或ObjectID的任何表达式。有关表达式的更多信息,请参见表达式。

timezone

可选

用于格式化日期的时区。默认情况下, $dateToParts使用UTC。 <timezone>可以是任何表达式,该表达式的值可以是: 1. 一个奥尔森时区标识符,例如"Europe/London""America/New_York", 2. UTC偏移量,格式为: a. +/-[hh]:[mm],例如"+04:45" b. +/-[hh][mm],例如"-0530" c. +/-[hh]例如"+03" 有关表达式的更多信息,请参见 表达式。

iso8601

可选

如果设置为true,则修改输出文档以使用ISO周日期字段。默认为false

行为

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

例如,考虑sales包含以下文档的集合:

以下汇总说明了MongoDB如何处理Olson时区标识符的DST偏移量。该示例使用 $hour$minute运算符返回date字段的相应部分:

该操作返回以下结果:

例子

考虑sales包含以下文档的集合:

以下聚合用于$dateToParts返回包含date字段组成部分的文档。

该操作返回以下结果:

译者:李冠飞

校对:

最后更新于