-
Type: Task
-
Resolution: Won't Do
-
Priority: Major - P3
-
None
-
Component/s: None
-
None
The $currentDate update operator is being deprecated for MongoDB 4.4. As an alternative users can rewrite their updates using updates with aggregation pipelines and can use the $$NOW and $$CLUSTER_TIME aggregation system variables to access the current wall-clock and cluster time.
In the following example, a document is updated using pipeline updates and $$NOW:
> db.test.insert({_id: 1, value: null, lastUpdated: null}) WriteResult({ "nInserted" : 1 }) > db.test.find() { "_id" : 1, "value" : null, "lastUpdated" : null } > db.test.update({_id: 1}, [{$set: {value: 1, lastUpdated: "$$NOW"}}]) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.test.find() { "_id" : 1, "value" : 1, "lastUpdated" : ISODate("2019-10-01T13:27:55.583Z") }
Description of Linked Ticket
This can be better expressed using $$NOW and $$CLUSTER_TIME within a pipeline-style update and having two ways to do the same thing is confusing.
- depends on
-
SERVER-42007 Deprecate $currentDate update modifier
- Backlog
-
CSHARP-2767 Deprecate $currentDate update modifier
- Closed
-
JAVA-3451 Deprecate $currentDate update modifier
- Closed
- related to
-
SERVER-46247 Revert deprecation of $currentDate update modifier
- Closed