On this page
$isoWeekYear (aggregation)
在本页面
Definition
$isoWeekYear
- 3.4 版的新功能。
以 ISO 8601 格式返回年份。年份从第 1 周的星期一开始,到最后一周的星期日结束。
$isoWeekYear表达式具有以下运算符表达式语法:
{ $isoWeekYear: <dateExpression> }
在版本 3.6 中更改。
该参数必须是有效的expression,它可以解析为以下之一:
3.6 版的新功能。
{ date: <dateExpression>, timezone: <tzExpression> }
Field | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
date |
运算符的应用日期。 <dateExpression> 必须是可解析为Date,Timestamp或ObjectID的有效expression。 |
||||||||
timezone |
Optional. 运算结果的时区。 <tzExpression> 必须是有效的expression,它必须解析为格式为奥尔森时区标识符或UTC Offset的字符串。如果未提供timezone ,结果将显示在UTC 中。 |
||||||||
Format |
Examples |
Olson 时区标识符 | “美国/纽约” "Europe/London" “格林尼治标准时间” |
UTC 偏移 | /-[47]:[48],例如“ 04:45” /-[49] [50],例如“ -0530” /-[51],例如“ 03” |
Behavior
Example | Result |
---|---|
{ $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:{ 日期:new Date(“ 2024 年 4 月 8 日”), timezone: "America/Chicago" } } |
2024 |
{ $isoWeekYear: "March 28, 1976" } |
error |
{ $isoWeekYear: Date("2016-01-01") } |
error |
{ $isoWeekYear: "2009-04-09" } |
error |
Note
$isoWeekYear
不能将字符串作为参数。
Example
名为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") }
以下操作为每个date
字段返回 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 }