MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB $currentDate

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)
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara mengecualikan beberapa bidang dari dokumen

  2. Cara menggunakan kembali koneksi ke Mongodb dengan benar di seluruh aplikasi dan modul NodeJs

  3. Bagaimana cara menghapus dokumen dengan kueri secara efisien di mongo?

  4. Janji dan driver MongoDB nodejs

  5. Bagaimana cara mendapatkan ukuran dokumen tunggal di Mongodb?