参考 > 参考 > 经营者 > 聚合管道运营商 > $ isoWeek(聚合)
在本页面
$isoWeek
3.4版的新功能。
以ISO 8601格式返回星期数,范围从1到 53。星期数字从1包含一年中第一个星期四的星期(星期一至星期日)开始。
1
53
该$isoWeek表达式具有以下 运算符表达式语法:
{ $isoWeek: <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"
{ $isoWeek: { date: new Date("Jan 4, 2016") } }
{ $isoWeek: new Date("2016-01-01") }
{ $isoWeek: { date: new Date("August 14, 2011"), timezone: "America/Chicago" } }
{ $isoWeek: ISODate("1998-11-02T00:00:00Z") }
{ $isoWeek: { date: ISODate("1998-11-02T00:00:00Z"), timezone: "-0500" } }
{ $isoWeek: "March 28, 1976" }
error
{ $isoWeek: Date("2016-01-01") }
{ $isoWeek: "2009-04-09" }
注意
$isoWeek 不能将字符串作为参数。
名为的集合deliveries包含以下文档:
deliveries
{ "_id" : 1, "date" : ISODate("2006-10-24T00:00:00Z"), "city" : "Boston" } { "_id" : 2, "date" : ISODate("2011-08-18T00:00:00Z"), "city" : "Detroit" }
以下操作返回每个date字段的星期数。
db.deliveries.aggregate( [ { $project: { _id: 0, city: "$city", weekNumber: { $isoWeek: "$date" } } } ] )
该操作返回以下结果:
{ "city" : "Boston", "weekNumber" : 43 } { "city" : "Detroit", "weekNumber" : 33 }
也可以看看