Definición
$yearDevuelve la parte del año de una fecha.
El
$yearLa expresión tiene lo siguiente Sintaxis de expresión del operador:{ $year: <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óndatetimezoneOpcional. La zona horaria del resultado de la operación.
<tzExpression>debe ser una expresión válida que se resuelva en una cadena con el formato de identificador de zona horaria de Olson.o una diferencia horaria UTC. Si notimezonese proporciona, el resultado se expresa en UTC.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 | ||||
|---|---|---|---|---|---|
| 2016 | ||||
| 2003 | ||||
| 2011 | ||||
| 1998 | ||||
| 1998 | ||||
|
| ||||
|
| ||||
|
|
Nota
$año no puede tomar una cadena como argumento.
Ejemplo
Considera una colección sales con los siguientes documentos:
db.sales.insertOne( { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-01-01T08:15:39.736Z") } )
La siguiente agregación utiliza y otros operadores de fecha para desglosar $year el date campo:
db.sales.aggregate( [ { $project: { year: { $year: "$date" }, month: { $month: "$date" }, day: { $dayOfMonth: "$date" }, hour: { $hour: "$date" }, minutes: { $minute: "$date" }, seconds: { $second: "$date" }, milliseconds: { $millisecond: "$date" }, dayOfYear: { $dayOfYear: "$date" }, dayOfWeek: { $dayOfWeek: "$date" }, week: { $week: "$date" } } } ] )
La operación devuelve el siguiente resultado:
{ "_id" : 1, "year" : 2014, "month" : 1, "day" : 1, "hour" : 8, "minutes" : 15, "seconds" : 39, "milliseconds" : 736, "dayOfYear" : 1, "dayOfWeek" : 4, "week" : 0 }