sql >> Base de Datos >  >> NoSQL >> MongoDB

Variable de agregación MongoDB NOW

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.