MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Variável de agregação do MongoDB NOW


O MongoDB fornece o NOW variável de sistema que permite obter o valor atual de data e hora ao usar um pipeline de agregação.

Isso pode ser útil quando você deseja atualizar um documento com a data e hora atual.

A partir do MongoDB 4.2, os métodos de atualização podem aceitar um pipeline de agregação. Portanto, NOW pode ser usado como uma alternativa ao $currentDate operador de atualização de campo para definir a data e hora atual ao usar qualquer um dos métodos de atualização.

Para acessar o NOW variável de sistema, prefixe-a com dois cifrões e coloque-a entre aspas ("$$NOW" ).

Exemplo


Suponha que tenhamos uma coleção chamada dogs que contém o seguinte documento:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }

Aqui está um exemplo de uso do NOW variável do sistema ao atualizar esse documento:
db.dogs.updateOne(
  { _id : 1 },
  [
    { $set : { weight : 30, lastModified : "$$NOW" } }
  ]
)

Agora vamos dar uma olhada no documento novamente:
db.dogs.find( { _id: 1 } ).pretty()

Resultado:
{
	"_id" : 1,
	"name" : "Fetch",
	"weight" : 30,
	"lastModified" : ISODate("2021-01-27T01:29:32.833Z")
}

O lastModified foi adicionado com um objeto Date que contém a data e hora atuais.

Há também um CLUSTER_TIME variável do sistema que retorna o carimbo de data/hora atual, embora isso esteja disponível apenas em conjuntos de réplicas e clusters fragmentados.

Observe também que o NOW e CLUSTER_TIME os valores permanecem os mesmos em todo o pipeline.