Di MongoDB, $currentDate
operator menyetel nilai bidang ke tanggal saat ini.
Itu dapat disetel sebagai Tanggal atau stempel waktu Tipe. Standarnya adalah Tanggal .
$currentDate
adalah pembaruan operator, dan hanya dapat digunakan saat memperbarui dokumen, bukan saat menyisipkannya (walaupun dapat digunakan dalam operasi upsert).
Contoh
Misalkan kita memiliki koleksi yang disebut dogs
dengan dokumen berikut:
{
"_id" : 1,
"name" : "Wag",
"goodDog" : true,
"dateModified" : ISODate("2020-01-01T00:00:00Z")
}
Dan kami ingin membuat perubahan pada dokumen. Saat kami melakukan perubahan, kami perlu memperbarui dateModified
kolom hingga tanggal perubahan.
Oleh karena itu, kita dapat menggunakan $currentDate
operator untuk mengatur tanggal ke tanggal saat ini. Kita bisa melakukan sesuatu seperti ini:
db.dogs.update(
{ _id: 1 },
{
$currentDate: {
dateModified: true
},
$set: {
goodDog: false
}
}
)
Di sini, kami menggunakan dateModified: true
untuk menyetel tanggal menggunakan Tanggal ketik (ini adalah cara singkat untuk menyetelnya sebagai Tanggal jenis).
Kami dapat memverifikasi hasilnya dengan melihat kembali koleksi/dokumen:
db.dogs.findOne()
Hasil:
{ "_id" : 1, "name" : "Wag", "goodDog" : false, "dateModified" : ISODate("2021-01-16T04:17:41.206Z") }
Kita dapat melihat bahwa dateModified
bidang telah diperbarui ke tanggal saat ini (yaitu tanggal/waktu saya menjalankan pembaruan). goodDog
bidang juga telah diperbarui seperti yang ditentukan.
Stempel waktu
Secara default $currentDate
menggunakan Tanggal Tipe. Anda juga dapat menentukan jenis dalam dokumen. Oleh karena itu, Anda dapat menggunakan {$type: timestamp}
sehingga tanggal diperbarui menjadi stempel waktu Jenis BSON.
Contoh:
db.dogs.update(
{ _id: 1 },
{
$currentDate: {
dateModified: { $type: "timestamp" }
},
$set: {
goodDog: true
}
}
)
Dalam hal ini, kami menyediakan dokumen yang menentukan stempel waktu Tipe.
Anda juga dapat menggunakan metode ini untuk Tanggal ketik (atau gunakan metode singkatan seperti yang terlihat pada contoh sebelumnya).
Cek koleksinya:
db.dogs.findOne()
Hasil:
{ "_id" : 1, "name" : "Wag", "goodDog" : true, "dateModified" : Timestamp(1610771023, 1) }