参考 > 参考 > 经营者 > 聚合管道运营商 > $ isoWeekYear(聚合)
在本页面
$isoWeekYear
3.4版的新功能。
以ISO 8601格式返回年份。年份从第1周的星期一开始,到最后一周的星期日结束。
该$isoWeekYear表达式具有以下 运算符表达式语法:
{ $isoWeekYear: <dateExpression> }
在版本3.6中更改。
该参数必须是可解析为以下之一的有效表达式:
一个日期,一个 时间戳,或对象ID。
以下格式的文件:
3.6版的新功能。
{ date: <dateExpression>, timezone: <tzExpression> }
date
<dateExpression>
timezone
Optional.运算结果的时区。 <tzExpression>必须是一个有效的表达式,可以解析为格式为Olson时区标识符或 UTC偏移量的字符串。如果未timezone提供,结果将显示在中UTC。
Optional.
<tzExpression>
UTC
Format
Examples
"America/New_York" "Europe/London" "GMT"
+/-[hh]:[mm], e.g. "+04:45" +/-[hh][mm], e.g. "-0530" +/-[hh], e.g. "+03"
{ $isoWeekYear: new Date("2015-05-26") }
{ $isoWeekYear: { date: new Date("Jan 7, 2003") } }
{ $isoWeekYear: ISODate("2017-01-02T00:00:00Z") }
{ $isoWeekYear: { date: ISODate("2017-01-02T00:00:00Z"), timezone: "-0500" } }
{ $isoWeekYear: { date: new Date("April 08, 2024"), timezone: "America/Chicago" } }
{ $isoWeekYear: "March 28, 1976" }
error
{ $isoWeekYear: Date("2016-01-01") }
{ $isoWeekYear: "2009-04-09" }
注意
$isoWeekYear 不能将字符串作为参数。
名为的集合anniversaries包含以下文档:
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 }
也可以看看