MongoDB menyediakan NOW
variabel sistem yang memungkinkan Anda mendapatkan nilai waktu saat ini saat menggunakan alur agregasi.
Ini dapat berguna ketika Anda ingin memperbarui dokumen dengan waktu saat ini.
Mulai di MongoDB 4.2, metode pembaruan dapat menerima jalur agregasi. Oleh karena itu, NOW
dapat digunakan sebagai alternatif untuk $currentDate
operator pembaruan bidang untuk menyetel waktu saat ini saat menggunakan salah satu metode pembaruan.
Untuk mengakses NOW
variabel sistem, awali dengan dua tanda dolar dan beri tanda kutip ("$$NOW"
).
Contoh
Misalkan kita memiliki koleksi yang disebut dogs
yang berisi dokumen berikut:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }
Berikut ini contoh penggunaan NOW
variabel sistem saat memperbarui dokumen itu:
db.dogs.updateOne(
{ _id : 1 },
[
{ $set : { weight : 30, lastModified : "$$NOW" } }
]
)
Sekarang mari kita lihat kembali dokumennya:
db.dogs.find( { _id: 1 } ).pretty()
Hasil:
{ "_id" : 1, "name" : "Fetch", "weight" : 30, "lastModified" : ISODate("2021-01-27T01:29:32.833Z") }
lastModified
bidang telah ditambahkan dengan objek Tanggal yang berisi tanggal dan waktu saat ini.
Ada juga CLUSTER_TIME
variabel sistem yang mengembalikan stempel waktu saat ini, meskipun ini hanya tersedia pada kumpulan replika dan kluster sharding.
Perhatikan juga bahwa NOW
dan CLUSTER_TIME
nilai tetap sama di seluruh jalur.