$isoWeek (aggregation)
On this page本页内容
Definition定义
$isoWeek
-
Returns the week number in ISO 8601 format, ranging from返回ISO 8601格式的周数,范围从1
to53
.1
到53
。Week numbers start at周数从1
with the week (Monday through Sunday) that contains the year's first Thursday.1
开始,包含一年中第一个星期四的一周(星期一到星期日)。The$isoWeek
expression has the following operator expression syntax:$isoWeek
表达式具有以下运算符表达式语法:{ $isoWeek: <dateExpression> }
The argument can be:参数可以是:An expression that resolves to a Date, a Timestamp, or an ObjectID.解析为Date、Timestamp或ObjectID的表达式。A document with this format:具有以下格式的文档:{ date: <dateExpression>, timezone: <tzExpression> }
Field字段Description描述date
The date to which the operator is applied.应用运算符的日期。<dateExpression>
must be a valid expression that resolves to a Date, a Timestamp, or an ObjectID.必须是解析为Date、Timestamp或ObjectID的有效表达式。timezone
Optional.可选的。The timezone of the operation result.运算结果的时区<tzExpression>
must be a valid expression that resolves to a string formatted as either an Olson Timezone Identifieror a UTC Offset
. If no
timezone
is provided, the result is displayed inUTC
.<tzExpression>
必须是一个有效的表达式,该表达式解析为一个格式为Olson时区标识符或UTC偏移
的字符串。如果没有提供
timezone
,结果将以UTC显示。Format格式Examples示例Olson Timezone Identifier
"America/New_York"
"Europe/London"
"GMT"UTC Offset
+/-[hh]:[mm], e.g. "+04:45"
+/-[hh][mm], e.g. "-0530"
+/-[hh], e.g. "+03"
Behavior行为
{ $isoWeek: { date: new Date("Jan 4, 2016") } } | 1 |
{ $isoWeek: new Date("2016-01-01") } | 53 |
{ $isoWeek: { | 32 |
{ $isoWeek: ISODate("1998-11-02T00:00:00Z") } | 45 |
{ $isoWeek: { | 44 |
{ $isoWeek: "March 28, 1976" } | error |
{ $isoWeek: Date("2016-01-01") } | error |
{ $isoWeek: "2009-04-09" } | error |
Note
$isoWeek cannot take a string as an argument.$isoWeek
不能将字符串作为参数。
Example实例
A collection called 一个名为deliveries
contains the following documents:deliveries
的集合包含以下文档:
{ "_id" : 1, "date" : ISODate("2006-10-24T00:00:00Z"), "city" : "Boston" }
{ "_id" : 2, "date" : ISODate("2011-08-18T00:00:00Z"), "city" : "Detroit" }
The following operation returns the week number for each 以下操作返回每个date
field.date
字段的周数。
db.deliveries.aggregate( [
{
$project: {
_id: 0,
city: "$city",
weekNumber: { $isoWeek: "$date" }
}
}
] )
The operation returns the following results:该操作返回以下结果:
{ "city" : "Boston", "weekNumber" : 43 }
{ "city" : "Detroit", "weekNumber" : 33 }
Tip