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.