文档菜单
文档首页
/
MongoDB 手册
/ / /

$isoWeekYear(聚合)

本页内容

  • 定义
  • 行为
  • 示例
$isoWeekYear

返回ISO 8601格式的年份数字。年份从第1周的星期一开始,到最后一周的星期日结束。

$isoWeekYear 表达式有以下操作表达式语法:

{ $isoWeekYear: <dateExpression> }

参数可以是

  • 一个解析为日期、时间戳或ObjectID的表达式。表达式,一个解析为日期时间戳ObjectID

  • 具有以下格式的文档

    { date: <dateExpression>, timezone: <tzExpression> }
    字段
    描述
    date
    应用于操作器的日期。 <dateExpression> 必须是一个有效的 表达式,该表达式解析为 日期时间戳ObjectID
    timezone

    可选。操作结果的时区。 <tzExpression> 必须是一个有效的 表达式,该表达式解析为一个格式化为Olson时区标识符或UTC偏移的字符串。如果未提供时区,结果将在UTC中。

    格式
    示例
    Olson 时区标识符
    "America/New_York"
    "Europe/London"
    "GMT"
    UTC 偏移量
    +/-[hh]:[mm], e.g. "+04:45"
    +/-[hh][mm], e.g. "-0530"
    +/-[hh], e.g. "+03"
示例
结果
{ $isoWeekYear: new Date("2015-05-26") }
2015
{ $isoWeekYear: { date: new Date("Jan 7, 2003") } }
2003
{ $isoWeekYear: ISODate("2017-01-02T00:00:00Z") }
2017
{ $isoWeekYear: {
date: ISODate("2017-01-02T00:00:00Z"),
timezone: "-0500"
} }
2016
{ $isoWeekYear: {
date: new Date("April 08, 2024"),
timezone: "America/Chicago"
} }
2024
{ $isoWeekYear: "March 28, 1976" }
错误
{ $isoWeekYear: Date("2016-01-01") }
错误
{ $isoWeekYear: "2009-04-09" }
错误

注意

$isoWeekYear 不能接受字符串作为参数。

名为 anniversaries 的集合包含以下文档

{ "_id" : 1, "date" : ISODate("2016-01-01T00:00:00Z") }
{ "_id" : 2, "date" : ISODate("2016-01-04T00:00:00Z") }
{ "_id" : 3, "date" : ISODate("2015-01-01T00:00:00Z") }
{ "_id" : 4, "date" : ISODate("2014-04-21T00:00:00Z") }

以下操作返回每个 日期 字段的 ISO 8601 格式的年份数字。

db.anniversaries.aggregate( [
{
$project: {
yearNumber: { $isoWeekYear: "$date" }
}
}
] )

操作返回以下结果

{ "_id" : 1, "yearNumber" : 2015 }
{ "_id" : 2, "yearNumber" : 2016 }
{ "_id" : 3, "yearNumber" : 2015 }
{ "_id" : 4, "yearNumber" : 2014 }

提示

另请参阅

返回

$isoWeek

本页内容