MongoDB - Koleksi Terbatas
Capped collectionsadalah koleksi melingkar ukuran tetap yang mengikuti urutan penyisipan untuk mendukung kinerja tinggi untuk membuat, membaca, dan menghapus operasi. Secara melingkar, ini berarti bahwa ketika ukuran tetap yang dialokasikan ke koleksi habis, itu akan mulai menghapus dokumen terlama dalam koleksi tanpa memberikan perintah eksplisit apa pun.
Koleksi yang dibatasi membatasi pembaruan ke dokumen jika pembaruan menghasilkan peningkatan ukuran dokumen. Karena koleksi yang dibatasi menyimpan dokumen dalam urutan penyimpanan disk, ini memastikan bahwa ukuran dokumen tidak meningkatkan ukuran yang dialokasikan pada disk. Koleksi yang dibatasi paling baik untuk menyimpan informasi log, data cache, atau data volume tinggi lainnya.
Membuat Koleksi Tertutup
Untuk membuat koleksi capped, kami menggunakan perintah createCollection normal tetapi dengan capped pilihan sebagai true dan menentukan ukuran maksimum koleksi dalam byte.
>db.createCollection("cappedLogCollection",{capped:true,size:10000})
Selain ukuran koleksi, kami juga dapat membatasi jumlah dokumen dalam koleksi menggunakan max parameter -
>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})
Jika Anda ingin memeriksa apakah koleksi dibatasi atau tidak, gunakan yang berikut ini isCapped perintah -
>db.cappedLogCollection.isCapped()
Jika sudah ada koleksi yang Anda rencanakan untuk diubah menjadi dibatasi, Anda dapat melakukannya dengan kode berikut -
>db.runCommand({"convertToCapped":"posts",size:10000})
Kode ini akan mengubah koleksi kami yang ada posts ke koleksi yang dibatasi.
Menanyakan Koleksi Terbatas
Secara default, kueri pencarian pada koleksi yang dibatasi akan menampilkan hasil dalam urutan penyisipan. Tetapi jika Anda ingin dokumen diambil dengan urutan terbalik, gunakansort perintah seperti yang ditunjukkan pada kode berikut -
>db.cappedLogCollection.find().sort({$natural:-1})
Ada beberapa poin penting lainnya tentang koleksi terbatas yang perlu diketahui -
Kami tidak dapat menghapus dokumen dari koleksi yang dibatasi.
Tidak ada indeks default yang ada dalam koleksi yang dibatasi, bahkan di bidang _id.
Saat memasukkan dokumen baru, MongoDB tidak harus benar-benar mencari tempat untuk menampung dokumen baru di disk. Itu dapat secara membabi buta memasukkan dokumen baru di bagian belakang koleksi. Ini membuat operasi penyisipan dalam koleksi yang dibatasi menjadi sangat cepat.
Demikian pula, saat membaca dokumen, MongoDB mengembalikan dokumen dalam urutan yang sama seperti yang ada di disk. Ini membuat operasi pembacaan menjadi sangat cepat.