Definición
$isoWeekNovedad en la versión 3.4.
Devuelve el número de la semana en formato ISO 8601, con un rango de
1a53. Los números de las semanas comienzan en1con la semana (de lunes a domingo) que contiene el primer jueves del año.La expresión tiene lo
$isoWeeksiguiente Sintaxis de expresión del operador:{ $isoWeek: <dateExpression> } El argumento puede ser:
Una expresión que se resuelve en una fecha, una marca de tiempo o un ObjectID.
Un documento con este formato:
{ date: <dateExpression>, timezone: <tzExpression> } CampoDescripcióndateLa fecha a la que se aplica el operador.
<dateExpression>debe ser una expresión válida que se resuelva a una Fecha, una Marca de tiempo, o un ObjectID.timezoneOptional.La zona horaria del resultado de la operación.<tzExpression>debe ser una expresión válida que resuelva en una string formateada como identificador de zona horaria de Olson. Identificador de zona horaria de Olson o un Diferencia UTC. Si no se proporcionatimezone, el resultado se muestra enUTC.FormatoEjemplosOlson 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"
Comportamiento
Ejemplo | Resultado | ||||
|---|---|---|---|---|---|
| 1 | ||||
| 53 | ||||
| 32 | ||||
| 45 | ||||
| 44 | ||||
|
| ||||
|
| ||||
|
|
Nota
$isoWeek no puede tomar una string como argumento.
Ejemplo
Una colección llamada deliveries contiene los siguientes documentos:
db.deliveries.insertMany( [ { _id: 1, date: ISODate("2006-10-24T00:00:00Z"), city: "Boston" }, { _id: 2, date: ISODate("2011-08-18T00:00:00Z"), city: "Detroit" } ] )
La siguiente operación devuelve el número de semana para cada campo date.
db.deliveries.aggregate( [ { $project: { _id: 0, city: "$city", weekNumber: { $isoWeek: "$date" } } } ] )
La operación devuelve los siguientes resultados:
[ { city: "Boston", weekNumber: 43 }, { city: "Detroit", weekNumber: 33 } ]