MongoDB biedt de NOW
systeemvariabele waarmee u de huidige datetime-waarde kunt krijgen bij gebruik van een aggregatiepijplijn.
Dit kan handig zijn als u een document wilt bijwerken met de huidige datum/tijd.
Vanaf MongoDB 4.2 kunnen updatemethoden een aggregatiepijplijn accepteren. Daarom, NOW
kan worden gebruikt als alternatief voor de $currentDate
field update-operator voor het instellen van de huidige datetime bij gebruik van een van de updatemethoden.
Om toegang te krijgen tot de NOW
systeemvariabele, voeg er twee dollartekens aan toe en plaats deze tussen aanhalingstekens ("$$NOW"
).
Voorbeeld
Stel dat we een verzameling hebben met de naam dogs
dat het volgende document bevat:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }
Hier is een voorbeeld van het gebruik van de NOW
systeemvariabele bij het bijwerken van dat document:
db.dogs.updateOne(
{ _id : 1 },
[
{ $set : { weight : 30, lastModified : "$$NOW" } }
]
)
Laten we nu nog eens naar het document kijken:
db.dogs.find( { _id: 1 } ).pretty()
Resultaat:
{ "_id" : 1, "name" : "Fetch", "weight" : 30, "lastModified" : ISODate("2021-01-27T01:29:32.833Z") }
De lastModified
veld is toegevoegd met een Date-object dat de huidige datum en tijd bevat.
Er is ook een CLUSTER_TIME
systeemvariabele die de huidige tijdstempel retourneert, hoewel deze alleen beschikbaar is op replicasets en shard-clusters.
Merk ook op dat de NOW
en CLUSTER_TIME
waarden blijven gedurende de hele pijplijn hetzelfde.