Definición
$secondDevuelve la segunda parte de una fecha como un número entre 0 y 59, pero puede ser 60 para tener en cuenta los segundos intercalares.
El
$secondLa expresión tiene lo siguiente Sintaxis de expresión del operador:{ $second: <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 | ||||
|---|---|---|---|---|---|
| 20 | ||||
| 0 | ||||
| 0 | ||||
| 42 | ||||
| 9 | ||||
|
| ||||
|
| ||||
|
|
Nota
$second no puede tomar una string como argumento.
Ejemplo
Considere una colección sales con el siguiente documento:
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 otras expresiones de fecha para desglosar $second 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 }