- Reference >
- Operators >
- Update Operators >
- Field Update Operators >
- $currentDate
$currentDate¶
On this page
Definition¶
-
$currentDate
¶ The
$currentDate
operator sets the value of a field to the current date, either as a Date or a timestamp. The default type is Date.Changed in version 3.0: MongoDB no longer treats the timestamp and the Date data types as equivalent for comparison/sorting purposes. For details, see Date 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 a Date, or - a document
{ $type: "timestamp" }
or{ $type: "date" }
which explicitly specifies the type. The operator is case-sensitive and accepts only the lowercase"timestamp"
or the lowercase"date"
.
To specify a
<field>
in an embedded document or in an array, use dot notation.- a boolean
Behavior¶
If the field does not exist, $currentDate
adds the field to a
document.
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 the
current date, the "cancellation.date"
field to the current timestamp
as 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"
}
}