$isoDayOfWeek (aggregation)
On this page
MongoDB 5.0 is end of life as of October 2024. This version of the documentation is no longer
supported. To upgrade your 5.0 deployment, see the MongoDB 6.0 upgrade procedures.
Definition
$isoDayOfWeek
New in version 3.4.
Returns the weekday number in ISO 8601 format, ranging from
1
(for Monday) to7
(for Sunday).The
$isoDayOfWeek
expression has the following operator expression syntax:{ $isoDayOfWeek: <dateExpression> } The argument can be:
An expression that resolves to a Date, a Timestamp, or an ObjectID.
A document with this format:
{ date: <dateExpression>, timezone: <tzExpression> } FieldDescriptiondate
The date to which the operator is applied.<dateExpression>
must be a valid expression that resolves to a Date, a Timestamp, or an 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 Identifier or a UTC Offset. If notimezone
is provided, the result is displayed inUTC
.FormatExamplesOlson 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 each
birthday
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 }