$second (aggregation)
On this page
This version of the documentation is archived and no longer supported. View the current documentation to learn how to upgrade your version of MongoDB server.
Definition
$second
Returns the second portion of a date as a number between 0 and 59, but can be 60 to account for leap seconds.
The
$second
expression has the following operator expression syntax:{ $second: <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 in UTC.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 | ||||
---|---|---|---|---|---|
| 20 | ||||
| 0 | ||||
| 0 | ||||
| 42 | ||||
| 9 | ||||
| error | ||||
| error | ||||
| error |
Note
$second cannot take a string as an argument.
Example
Consider a sales
collection with the following document:
{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-01-01T08:15:39.736Z") }
The following aggregation uses the $second
and other date
expressions to break down the date
field:
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" } } } ] )
The operation returns the following result:
{ "_id" : 1, "year" : 2014, "month" : 1, "day" : 1, "hour" : 8, "minutes" : 15, "seconds" : 39, "milliseconds" : 736, "dayOfYear" : 1, "dayOfWeek" : 4, "week" : 0 }