MongoDB poskytuje NOW systémová proměnná, která vám umožňuje získat aktuální hodnotu data a času při použití agregačního kanálu.
To může být užitečné, když chcete aktualizovat dokument aktuálním datem a časem.
Počínaje MongoDB 4.2 mohou metody aktualizace přijímat agregační kanál. Proto NOW lze použít jako alternativu k $currentDate pole operátor aktualizace pro nastavení aktuálního data a času při použití kterékoli z metod aktualizace.
Pro přístup k NOW systémovou proměnnou, před ní vložte dva znaky dolaru a vložte ji do uvozovek ("$$NOW" ).
Příklad
Předpokládejme, že máme sbírku nazvanou dogs který obsahuje následující dokument:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }
Zde je příklad použití NOW systémová proměnná při aktualizaci tohoto dokumentu:
db.dogs.updateOne(
{ _id : 1 },
[
{ $set : { weight : 30, lastModified : "$$NOW" } }
]
) Nyní se znovu podíváme na dokument:
db.dogs.find( { _id: 1 } ).pretty() Výsledek:
{
"_id" : 1,
"name" : "Fetch",
"weight" : 30,
"lastModified" : ISODate("2021-01-27T01:29:32.833Z")
}
lastModified pole bylo přidáno s objektem Date, který obsahuje aktuální datum a čas.
Je zde také CLUSTER_TIME systémová proměnná, která vrací aktuální časové razítko, i když je k dispozici pouze v sadách replik a sdílených clusterech.
Všimněte si také, že NOW a CLUSTER_TIME hodnoty zůstávají v celém kanálu stejné.