MongoDB sejauh ini merupakan pilihan paling populer di dunia NoSQL karena arsitektur terdistribusinya memungkinkan skalabilitas yang lebih besar dan model data dokumennya memberikan fleksibilitas yang baik bagi pengembang. Hampir setiap tahun, versi utama MongoDB dirilis dan 2018 tidak terkecuali. MongoDB 4.0 dirilis pada Juli 2018, diikuti oleh beberapa rilis kecil lainnya juga. Dengan MongoDB versi 4.0, transaksi multi-dokumen dan konversi jenis didukung sekarang. MongoDB memperkenalkan alat baru yang disebut bagan MongoDB (beta) dan menambahkan dukungan untuk pembuat pipa agregasi di kompas MongoDB juga pada tahun 2018. Dalam artikel ini, kita akan membahas beberapa fitur menarik dari MongoDB yang dirilis pada tahun 2018.
Transaksi ACID Multi-Dokumen
Ini adalah fitur yang paling ditunggu di MongoDB. Mulai dari versi 4.0, transaksi asam multi-dokumen terhadap set replika sudah siap produksi dan didukung oleh MongoDB. Semua transaksi MongoDB sekarang memperluas properti ACID yang memastikan integritas data. Sangat mudah untuk menambahkan transaksi asam dalam aplikasi apa pun yang membutuhkannya dan tidak memengaruhi operasi lain yang tidak memerlukannya. Dengan dukungan transaksi asam multi-dokumen, setiap operasi tulis yang dilakukan di dalam transaksi, tidak akan terlihat di luar transaksi. Berikut adalah beberapa perintah yang berguna untuk menambahkan transaksi asam multi-dokumen di dalam aplikasi Anda.
Fungsi | Deskripsi |
---|---|
Session.startTransaction() | Mulai transaksi baru |
Session.commitTransaction() | Melakukan transaksi |
Session.abortTransaction() | Membatalkan transaksi |
Berikut adalah contoh kecil untuk menambahkan operasi transaksi menggunakan shell Mongo:
akashk:PRIMARY> use mydb
akashk:PRIMARY> db.createCollection(“newColl”)
akashk:PRIMARY> session = db.getMongo().startSession()
akashk:PRIMARY> session { "id" : UUID("62525323-1cd1-4ee8-853f-b78e593b46ba") }
akashk:PRIMARY> session.startTransaction()
akashk:PRIMARY> session.getDatabase("mydb").newColl.insert({name : 'hello'})
akashk:PRIMARY> WriteResult({ "nInserted" : 1 })
akashk:PRIMARY> session.commitTransaction()
Semua transaksi memberikan tampilan data yang konsisten di satu atau banyak koleksi dalam database menggunakan isolasi snapshot. MongoDB tidak akan mendorong perubahan yang tidak dikomit ke node/replika sekunder. Setelah transaksi dilakukan, semua perubahan akan diterapkan ke node sekunder.
Ada banyak contoh di mana kita dapat menggunakan transaksi asam multi-dokumen MongoDB seperti,
- Transfer dana antar rekening bank
- Sistem pembayaran
- Sistem perdagangan
- Sistem rantai pasokan
- Sistem penagihan
Hal yang Perlu Dipertimbangkan Saat Menambahkan Transaksi
- MongoDB akan membatalkan semua transaksi yang berjalan lebih dari 60 detik.
- Tidak lebih dari 1000 dokumen harus diubah dalam satu transaksi. Tidak ada batasan untuk operasi baca.
- Setiap transaksi harus berukuran kurang dari 16MB karena MongoDb menyimpan transaksi apa pun sebagai satu entri di oplog.
- Saat Anda membatalkan transaksi apa pun, semua perubahan akan dibatalkan.
Operator Konversi Jenis Baru di Agregasi Pipeline
Untuk mendapatkan wawasan data secara real-time dan menulis kueri yang kompleks, pengembang MongoDB umumnya lebih suka membuat saluran agregasi. Dalam versi MongoDB 4.0, beberapa operator konversi tipe agregasi baru telah ditambahkan untuk kueri data tanpa pembersihan bidang individual.
Operator agregasi | Deskripsi |
---|---|
$konversi | Mengonversi nilai ke tipe tertentu |
$toDate | Mengonversi nilai ke Tanggal |
$toDesimal | Mengonversi nilai ke Desimal |
$toDouble | Mengubah nilai menjadi Ganda |
$toLong | Mengonversi nilai menjadi Panjang |
$toInt | Mengonversi nilai menjadi Integer |
$toObjectId | Mengonversi nilai menjadi ObjectId |
$toString | Mengonversi nilai menjadi String |
$ltrim | Hapus karakter yang tidak perlu dari awal string |
$rtrim | Hapus karakter yang tidak perlu dari akhir string |
$trim | Hapus karakter yang tidak perlu dari kedua sisi string |
Fungsi yang Diperluas dari Aliran Perubahan
Fungsi aliran perubahan yang menyediakan pembaruan perubahan data waktu nyata tanpa pengaturan yang rumit telah diperkenalkan di versi 3.6. Dengan versi 4.0, aliran perubahan dapat melacak perubahan seluruh database atau cluster, bukan hanya satu koleksi sekarang. Selain itu, sekarang, aliran perubahan juga mengembalikan stempel waktu cluster yang terkait dengan peristiwa yang dapat berguna untuk aplikasi server.
Migrasi Data Lebih Cepat
Saat database Anda di-sharding di seluruh cluster, menambahkan dan menghapus node secara elastis dari cluster yang di-shard dapat memakan waktu di beberapa waktu. Penyeimbang cluster sharded yang bertanggung jawab untuk mendistribusikan data di semua shard, mendapat peningkatan besar di versi 4.0. Sekarang, ia dapat menyelesaikan migrasi data dengan kecepatan 40% lebih cepat.
Bacaan Sekunder Tanpa Blokir
Sebelumnya, MongoDB digunakan untuk memblokir semua pembacaan sekunder saat entri oplog diterapkan ke node sekunder. Ini menyebabkan latensi variabel dari pembacaan sekunder. Dari MongoDB 4.0, pembacaan sekunder menjadi non-pemblokiran karena peningkatan throughput set replika dan peningkatan latensi baca.
Pembuat Pipa Agregasi di Kompas
Kompas MongoDB adalah alat GUI untuk MongoDB untuk memvisualisasikan dan meminta data. Tahun ini, kompas MongoDB mendapat fitur baru dari pipa agregasi. Ini menyediakan editor kueri visual untuk membangun saluran agregasi multi-tahap. Berikut cuplikannya:
Pembuat kueri agregasi di KompasSelain fitur ini, kompas juga memiliki kemampuan untuk mengekspor kueri Anda ke bahasa kode asli pilihan Anda sekarang.
Grafik MongoDB
Bagan MongoDB adalah alat baru yang memungkinkan pengguna dengan cepat membuat visualisasi waktu nyata dari data MongoDB. Alat ini dibangun untuk model data dokumen dengan dukungan penanganan tipe, pengurangan array dan dokumen bersarang juga. Alat ini memungkinkan pengguna untuk membuat dasbor bagan dan membaginya dengan pengguna lain. Grafik MongoDB sekarang terintegrasi penuh dengan MongoDB Atlas.
Fitur MongoDB Baru Lainnya
- MongoDB Stitch:Platform tanpa server untuk pengembangan aplikasi klien yang dapat mengakses layanan Mongo dengan aman.
- MongoDB Kubernetes:Untuk men-deploy MongoDB dalam cluster Kubernetes.
- MongoDB Mobile:Memberikan fleksibilitas dan kekuatan MongoDB dalam bentuk yang ringkas sehingga dapat digunakan di perangkat IoT.
- Layanan Cloud Pemantauan MongoDB:Untuk mendorong metadata pemantauan ke awan pemantauan MongoDB secara gratis.
Masa Depan MongoDB
MongoDB juga berencana untuk meluncurkan beberapa fitur baru dengan versi 4.2 yang meliputi,
- Mesin WiredTiger yang lebih ekstensif
- Manajer transaksi
- Transaksi di seluruh penerapan sharding
- Pembacaan titik waktu global