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.