Salah satu skenario umum dalam bekerja dengan database adalah secara otomatis memangkas beberapa tabel berdasarkan waktu. Misalnya, Anda mungkin memiliki tabel pekerjaan untuk melacak pekerjaan latar belakang di produk Anda dan Anda hanya ingin menyimpan pekerjaan selama satu jam terakhir. Cara penerapannya biasanya adalah Anda akhirnya menulis proses daemon yang berjalan secara berkala dan mengumpulkan sampah tabel Anda. Mengingat ini adalah proses yang umum, orang-orang di MongoDB telah membangun fungsionalitas ini ke dalam database yang dapat dimanfaatkan dalam penerapan MongoDB Anda! Ini disebut "indeks TTL". Inilah cara Anda dapat menggunakan indeks TTL dalam dua langkah sederhana:
-
Langkah 1:Tambahkan Bidang Tanggal
Tambahkan bidang tanggal ke dokumen Anda untuk menunjukkan usia dokumen. MongoDB akan menggunakan bidang ini untuk menentukan apakah dokumen Anda kedaluwarsa dan perlu dihapus. Jika Anda ingin menyimpan dokumen lebih lama, cukup perbarui dokumen ini dengan tanggal yang diperbarui. Pada contoh di bawah ini saya telah menambahkan bidang “Waktu pembuatan” ke koleksi pekerjaan saya:
db.jobs.insert( { "name" : testjob "creationTime": new Date('Oct 30, 2013: 11:00:00'), "type": 2, } )
-
Langkah 2:Tambahkan Indeks TTL
Tambahkan indeks TTL ke koleksi Anda di bidang ini. Dalam contoh di bawah ini, kami akan menggunakan nilai expiredAfterSeconds sebesar 3600. Ini akan membuat pekerjaan kedaluwarsa setelah setiap jam:
db.jobs.ensureIndex( { "creationTime": 1 }, { expireAfterSeconds: 3600 } )
Daemon TTL berjalan setiap 60 detik, sehingga dokumen Anda akan dihapus dalam waktu sekitar 60 detik setelah kedaluwarsa. Keuntungan lain dari indeks TTL adalah mereka juga berperilaku seperti indeks normal – sehingga Anda dapat melakukan kueri pada bidang tanggal dan rencana kueri akan menggunakan indeks. Untuk detail lebih lanjut, lihat dokumentasi MongoDB tentang indeks TTL.