$isoDayOfWeek (aggregation)
Definition
New in version 3.4.
Returns the weekday number in ISO 8601 format, ranging from1
(for Monday) to 7
(for Sunday).
The $isoDayOfWeek
expression has the followingoperator expression syntax:
- { $isoDayOfWeek: <dateExpression> }
Changed in version 3.6.
The argument must be a valid expression that resolves to one of the following:
New in version 3.6.
- { date: <dateExpression>, timezone: <tzExpression> }
FieldDescriptiondate
The date to which the operator is applied.<dateExpression>
must be a valid expression that resolves to aDate, aTimestamp,or an ObjectID.timezone
Optional.
The timezone of the operation result.<tzExpression>
must be a valid expression that resolves to a string formatted as eitheran Olson Timezone Identifier or aUTC Offset.If no timezone
is provided, the result is displayed in 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
Example | Result |
---|---|
| 5 |
| 2 |
| 7 |
| 6 |
| 5 |
| error |
| error |
| error |
Note
$isoDayOfWeek
cannot take a string as an argument.
Example
A collection called birthdays
contains the following documents:
- { "_id" : 1, "name" : "Betty", "birthday" : ISODate("1993-09-21T00:00:00Z") }
- { "_id" : 2, "name" : "Veronica", "birthday" : ISODate("1981-11-07T00:00:00Z") }
The following operation returns the weekday number for eachbirthday
field.
- db.dates.aggregate( [
- {
- $project: {
- _id: 0,
- name: "$name",
- dayOfWeek: { $isoDayOfWeek: "$birthday" }
- }
- }
- ] )
The operation returns the following results:
- { "name" : "Betty", "dayOfWeek" : 2 }
- { "name" : "Veronica", "dayOfWeek" : 6 }
See also