MongoDB proporciona el NOW
variable del sistema que le permite obtener el valor de fecha y hora actual al usar una canalización de agregación.
Esto puede ser útil cuando desea actualizar un documento con la fecha y hora actual.
A partir de MongoDB 4.2, los métodos de actualización pueden aceptar una canalización de agregación. Por lo tanto, NOW
se puede utilizar como alternativa a $currentDate
Operador de actualización de campo para configurar la fecha y hora actual cuando se utiliza cualquiera de los métodos de actualización.
Para acceder al NOW
variable del sistema, antepóngala con dos signos de dólar y rodéela entre comillas ("$$NOW"
).
Ejemplo
Supongamos que tenemos una colección llamada dogs
que contiene el siguiente documento:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }
Aquí hay un ejemplo del uso de NOW
variable del sistema al actualizar ese documento:
db.dogs.updateOne(
{ _id : 1 },
[
{ $set : { weight : 30, lastModified : "$$NOW" } }
]
)
Ahora echemos un vistazo al documento de nuevo:
db.dogs.find( { _id: 1 } ).pretty()
Resultado:
{ "_id" : 1, "name" : "Fetch", "weight" : 30, "lastModified" : ISODate("2021-01-27T01:29:32.833Z") }
El lastModified
se ha agregado un campo con un objeto Fecha que contiene la fecha y la hora actuales.
También hay un CLUSTER_TIME
variable del sistema que devuelve la marca de tiempo actual, aunque solo está disponible en conjuntos de réplicas y clústeres fragmentados.
También tenga en cuenta que el NOW
y CLUSTER_TIME
los valores siguen siendo los mismos en toda la canalización.