Definition
- $isoDayOfWeek
- Returns the weekday number in ISO 8601 format, ranging from - 1(for Monday) to- 7(for Sunday).- The - $isoDayOfWeekexpression 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> } FieldDescription- 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.- 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 no- timezoneis provided, the result is in UTC.FormatExamples- 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 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | 
Note
$isoDayOfWeek cannot take a string as an argument.
Example
A collection called birthdays contains the following documents:
db.birthdays.insertMany( [    { _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.birthdays.aggregate( [   {     $project: {       _id: 0,       name: "$name",       dayOfWeek: { $isoDayOfWeek: "$birthday" }     }   } ] ) 
The operation returns the following results:
[    { name: "Betty", dayOfWeek: 2 },    { name: "Veronica", dayOfWeek: 6 } ]