$currentDate
Definition
$currentDate
- The
$currentDate
operator sets the value of a field tothe current date, either as a Dateor a timestamp. The defaulttype is Date.
Changed in version 3.0: MongoDB no longer treats the timestamp and the Date data types as equivalent forcomparison/sorting purposes. For details, seeDate and Timestamp Comparison Order.
The $currentDate
operator has the form:
- { $currentDate: { <field1>: <typeSpecification1>, ... } }
<typeSpecification>
can be either:
- a boolean
true
to set the field value to the current date as aDate, or - a document
{ $type: "timestamp" }
or{ $type: "date" }
which explicitly specifies the type. The operator iscase-sensitive and accepts only the lowercase"timestamp"
orthe lowercase"date"
.To specify a<field>
in an embedded document or in an array, usedot notation.
Behavior
If the field does not exist, $currentDate
adds the field to adocument.
Example
Consider the following document in the users
collection:
- { _id: 1, status: "a", lastModified: ISODate("2013-10-02T01:11:18.965Z") }
The following operation updates the lastModified
field to thecurrent date, the "cancellation.date"
field to the current timestampas well as updating the status
field to "D"
and the"cancellation.reason"
to "user request"
.
- db.users.update(
- { _id: 1 },
- {
- $currentDate: {
- lastModified: true,
- "cancellation.date": { $type: "timestamp" }
- },
- $set: {
- status: "D",
- "cancellation.reason": "user request"
- }
- }
- )
The updated document would resemble:
- {
- "_id" : 1,
- "status" : "D",
- "lastModified" : ISODate("2014-09-17T23:25:56.314Z"),
- "cancellation" : {
- "date" : Timestamp(1410996356, 1),
- "reason" : "user request"
- }
- }
See also