All Products
Search
Document Center

ApsaraDB for MongoDB:Ikhtisar fitur baru di MongoDB 5.0

Last Updated:Jun 21, 2026

Topik ini menjelaskan fitur-fitur utama yang diperkenalkan dalam MongoDB 5.0.

Informasi latar belakang

MongoDB 5.0 menandai awal siklus rilis baru untuk menyediakan fitur-fitur terbaru kepada pengguna lebih cepat. Fitur seperti Versioned API dan live resharding menyederhanakan peningkatan database di masa depan serta mendukung kebutuhan bisnis yang terus berkembang. Platform data time series native memperluas kemampuan MongoDB dalam menangani berbagai jenis beban kerja dan kasus penggunaan, sementara MongoDB Shell yang baru meningkatkan pengalaman pengguna.

Platform time series native

MongoDB 5.0 memperluas platform data aplikasi serba guna untuk menyederhanakan pengelolaan data time series, sehingga memperluas penerapannya di bidang seperti IoT, analitik keuangan, dan logistik.

Koleksi time series MongoDB secara otomatis menyimpan data time series dalam format yang sangat dioptimalkan dan terkompresi, mengurangi ukuran penyimpanan dan I/O demi kinerja serta skalabilitas yang lebih baik. Hal ini mempercepat siklus pengembangan dan memungkinkan Anda membangun model yang dioptimalkan untuk aplikasi time series dengan cepat.

Contoh perintah untuk membuat koleksi time series:
db.createCollection("collection_name",{ timeseries: { timeField: "timestamp" } } )

MongoDB dapat secara mulus menyesuaikan frekuensi ingestion dan secara otomatis menangani pengukuran yang tidak urut berdasarkan partisi waktu yang dihasilkan secara dinamis. MongoDB Connector terbaru untuk Apache Kafka menyediakan dukungan native untuk time series. Anda dapat secara otomatis membuat koleksi time series langsung dari pesan topik Kafka, yang memungkinkan Anda memproses dan mengagregasi data saat melakukan ingestion sebelum menuliskan data tersebut ke koleksi time series MongoDB.

Koleksi time series secara otomatis membuat clustered index yang terurut berdasarkan waktu, sehingga mengurangi latensi kueri. API kueri MongoDB juga diperluas dengan window function, memungkinkan Anda menjalankan kueri analitik seperti moving average dan cumulative sum. Dalam sistem database relasional, fungsi-fungsi ini sering disebut sebagai SQL analytical function dan mendukung jendela yang ditentukan berdasarkan baris (misalnya, moving average tiga baris). MongoDB melangkah lebih jauh dengan menambahkan fungsi time series yang lebih canggih seperti exponential moving average (EMA), derivatives, dan integrals, yang mendukung jendela yang ditentukan berdasarkan waktu (misalnya, moving average 15 menit). Anda dapat menggunakan window function untuk mengkueri baik koleksi time series maupun koleksi MongoDB biasa, memberikan kemampuan analitik baru untuk berbagai jenis aplikasi. Selain itu, MongoDB 5.0 menyediakan operator tanggal baru, termasuk $dateAdd, $dateSubtract, $dateDiff, dan $dateTrunc, untuk mengagregasi dan mengkueri data dalam jendela waktu kustom.

Anda dapat menempatkan koleksi time series dalam database yang sama dengan koleksi MongoDB biasa. Anda tidak perlu memilih database time series khusus—yang tidak dapat melayani jenis aplikasi lain—atau menerapkan integrasi kompleks untuk mencampur data time series dengan data lainnya. Dengan menyediakan platform terpadu, MongoDB memungkinkan Anda membangun aplikasi time series berkinerja tinggi dan efisien sekaligus mendukung kasus penggunaan atau beban kerja lainnya. Hal ini menghilangkan biaya dan kompleksitas integrasi serta pengoperasian beberapa database yang berbeda.

Live resharding

Versi database Fitur Metode implementasi
Sebelum MongoDB 5.0 Sebelum MongoDB 5.0, resharding merupakan proses manual yang kompleks.
  • Metode 1: Dump seluruh koleksi, lalu muat ulang data ke koleksi baru dengan kunci shard yang baru.

    Karena ini merupakan proses offline, aplikasi Anda mengalami downtime signifikan hingga proses reload selesai. Misalnya, dumping dan reload koleksi lebih dari 10 TB pada kluster tiga shard bisa memakan waktu beberapa hari.

  • Metode 2: Buat kluster sharded baru, definisikan ulang kunci shard koleksi, lalu gunakan proses migrasi kustom untuk menuliskan data dari kluster sharded lama ke yang baru.
    • Proses ini mengharuskan Anda menangani sendiri logika routing kueri dan migrasi, serta terus-menerus memantau progres migrasi untuk memastikan semua data berhasil dimigrasikan.
    • Migrasi kustom merupakan tugas yang sangat kompleks, padat karya, berisiko tinggi, dan memakan waktu lama. Misalnya, salah satu pengguna MongoDB menghabiskan tiga bulan untuk memigrasikan 10 miliar dokumen.
MongoDB 5.0 dan seterusnya
  • reshardCollectionJalankan perintah untuk memulai resharding.
  • Proses resharding sangat efisien.

    Proses ini tidak hanya menyeimbangkan ulang data. Sebaliknya, ia menyalin dan menulis ulang semua data dari koleksi saat ini ke koleksi baru di latar belakang, sambil tetap sinkron dengan tulisan aplikasi baru.

  • Resharding sepenuhnya otomatis.

    Hal ini mengurangi waktu resharding dari hitungan minggu atau bulan menjadi hitungan menit atau jam, sehingga menghindari migrasi data manual yang membosankan dan kompleks.

  • Dengan live resharding, Anda dapat dengan mudah mengevaluasi dampak kunci shard yang berbeda di lingkungan pengembangan atau pengujian, serta mengubah kunci shard kapan pun diperlukan.
reshardCollectionAnda dapat mengubah kunci shard koleksi sesuai kebutuhan seiring pertumbuhan bisnis Anda, tanpa downtime database atau migrasi data yang kompleks. Anda hanya perlu menjalankan perintah di MongoDB Shell, memilih database dan koleksi yang akan direshard, lalu menentukan kunci shard yang baru.
reshardCollection: "<database>.<koleksi>", key: <kunci shard>
Catatan
  • <database>: Nama database yang akan direshard.
  • <koleksi>: Nama koleksi yang akan direshard.
  • <kunci shard>: Nama kunci shard.
  • reshardCollectionSetelah menerapkan semua entri oplog, MongoDB secara otomatis beralih ke koleksi baru dan menghapus koleksi lama di latar belakang.

Versioned API

  • Kompatibilitas aplikasi

    Mulai MongoDB 5.0, Versioned API mendefinisikan kumpulan perintah dan parameter stabil yang paling umum, yang tetap tidak berubah baik di Major Release tahunan maupun Rapid Release triwulanan. Dengan memisahkan siklus hidup aplikasi dan database, Anda dapat mengaitkan driver ke versi tertentu dari API MongoDB. Hal ini memastikan aplikasi Anda dapat berjalan selama bertahun-tahun tanpa perubahan kode, bahkan saat terjadi peningkatan database.

  • Fleksibilitas untuk menambahkan fitur dan peningkatan baru

    Versioned API memungkinkan MongoDB secara fleksibel menambahkan fitur dan peningkatan baru pada setiap rilis sambil tetap menjaga kompatibilitas mundur. Saat Anda perlu mengubah API, Anda dapat memperkenalkan versi API baru yang berjalan di server yang sama bersama versi API sebelumnya. Seiring percepatan jadwal rilis MongoDB, Versioned API memungkinkan Anda mengadopsi fitur MongoDB terbaru lebih cepat dan lebih mudah.

Write Concern default ke level Majority

Mulai MongoDB 5.0, level write concern default adalah majority. Operasi tulis hanya diakui berhasil setelah diterapkan ke node primary dan dipertahankan di journal mayoritas node secondary, sehingga memberikan jaminan ketahanan data yang lebih kuat secara langsung.
Catatan Write concern sepenuhnya dapat dikonfigurasi. Anda dapat menyesuaikan write concern untuk menyeimbangkan kinerja aplikasi dan ketahanan data.

Optimisasi manajemen koneksi

Secara default, setiap koneksi klien berkorespondensi dengan satu thread di server backend MongoDB saat Anda mengonfigurasi net.serviceExecutor sebagai synchronous. Membuat, mengganti, dan menghapus thread merupakan operasi yang intensif sumber daya. Ketika jumlah koneksi terlalu tinggi, thread akan mengonsumsi sumber daya server secara signifikan.

Connection storm adalah lonjakan jumlah koneksi atau laju pembuatan koneksi yang tidak terkendali. Masalah ini dapat disebabkan oleh berbagai faktor dan sering terjadi ketika kinerja layanan sudah menurun.

Untuk mengatasi situasi ini, MongoDB 5.0 memperkenalkan langkah-langkah berikut:
  • Membatasi jumlah koneksi yang dapat dibuat driver sekaligus, memberikan cara sederhana dan efektif untuk mencegah overload server database.
  • Mengurangi frekuensi pemeriksaan connection pool oleh driver, memberi waktu bagi node server yang tidak responsif atau kelebihan beban untuk pulih.
  • Driver mengarahkan beban kerja ke server yang lebih cepat dengan connection pool yang lebih sehat, bukan memilih server secara acak dari daftar yang tersedia.

Langkah-langkah ini, dikombinasikan dengan peningkatan pada lapisan routing kueri mongos dari versi sebelumnya, semakin meningkatkan kemampuan MongoDB dalam menangani beban kerja konkurensi tinggi.

Kueri snapshot berdurasi panjang

Kueri snapshot berdurasi panjang meningkatkan fleksibilitas dan ketahanan aplikasi. Anda dapat menjalankan kueri dengan durasi default 5 menit (atau menyesuaikannya ke durasi kustom) sambil mempertahankan isolasi snapshot yang konsisten dengan database transaksional aktif. Anda juga dapat menjalankan kueri snapshot pada node secondary, yang memungkinkan Anda menjalankan beban kerja berbeda pada satu kluster dan menskalanya di berbagai shard.

MongoDB mengimplementasikan kueri snapshot berdurasi panjang melalui fitur pada mesin penyimpanan dasar bernama Durable History, yang diperkenalkan di MongoDB 4.4. Durable History menyimpan snapshot semua nilai bidang yang berubah sejak kueri dimulai. Dengan memanfaatkan Durable History, kueri dapat mempertahankan isolasi snapshot meskipun data berubah. Durable History juga membantu mengurangi tekanan cache pada mesin penyimpanan, sehingga meningkatkan throughput kueri dalam skenario dengan beban tulis tinggi.

MongoDB Shell baru

Untuk memberikan pengalaman pengguna yang lebih baik, MongoDB 5.0 memperkenalkan MongoDB Shell (mongosh) yang didesain ulang sepenuhnya. Shell ini menawarkan pengalaman command-line modern, fitur kegunaan yang ditingkatkan, serta lingkungan skrip yang tangguh. MongoDB Shell baru kini menjadi shell default untuk platform MongoDB. Fitur-fiturnya mencakup syntax highlighting, autocompletion cerdas, bantuan kontekstual, dan pesan error yang informatif untuk pengalaman interaktif yang intuitif.

  • Pengalaman pengguna yang ditingkatkan
    • Menulis kueri dan agregasi lebih mudah, serta mendapatkan hasil yang lebih mudah dibaca.

      MongoDB Shell baru mendukung syntax highlighting, sehingga mempermudah pembedaan antara bidang, nilai, dan tipe data untuk menghindari kesalahan sintaksis. Jika terjadi error, MongoDB Shell baru akan menunjukkan lokasi masalah dan memberikan saran solusi.

    • Memasukkan kueri dan perintah lebih cepat.

      MongoDB Shell baru mendukung autocompletion cerdas. Shell ini memberikan saran untuk metode, perintah, dan ekspresi MQL berdasarkan versi MongoDB yang Anda gunakan.

      Contoh: Jika Anda lupa sintaksis suatu perintah, Anda dapat langsung mencarinya dari MongoDB Shell.
      secondary [direct: secondary] sample_mflix → db.movies.createIndex
      db.movies.createIndexes  db.movies.createIndex
      secondary [direct: secondary] sample_mflix → db.movies.createIndex.help()
        db.coll.createIndex({ category: 1 }, { name: 'index-1' }):
        Creates one index on a collection
        For more information on usage: https://docs.mongodb.com/manual/reference/method/db.collection.createIndex
      secondary [direct: secondary] sample_mflix →
  • Lingkungan skrip lanjutan

    Lingkungan skrip MongoDB Shell baru dibangun di atas Node.js REPL (Read-Eval-Print Loop). Anda dapat menggunakan semua API Node.js dan modul apa pun dari npm dalam skrip Anda. Anda juga dapat memuat dan menjalankan skrip dari sistem file, serta tetap dapat menggunakan load() dan eval() untuk mengeksekusi skrip seperti pada shell lama.

  • Ekstensibilitas dan plugin

    MongoDB Shell baru sangat ekstensibel, memungkinkan Anda memanfaatkan semua fitur MongoDB untuk meningkatkan produktivitas.

    Di MongoDB Shell baru, Anda dapat menginstal plugin Snippets. Shell dapat memuat Snippets secara otomatis serta menggunakan semua API Node.js dan paket npm. MongoDB juga menyediakan repositori Snippets yang berisi fitur-fitur berguna, seperti plugin untuk menganalisis skema koleksi tertentu. Anda juga dapat mengonfigurasi MongoDB Shell untuk menggunakan plugin pilihan Anda.
    Catatan Plugin saat ini merupakan fitur eksperimental di MongoDB Shell.

PyMongoArrow dan ilmu data

Dengan API PyMongoArrow yang baru, Anda dapat menggunakan Python untuk menjalankan analitik kompleks dan pembelajaran mesin pada MongoDB. PyMongoArrow dapat dengan cepat mengonversi hasil kueri MongoDB sederhana ke format data populer, seperti Pandas DataFrame atau NumPy array, guna menyederhanakan alur kerja ilmu data Anda.

Penyempurnaan validasi skema

Validasi skema merupakan cara untuk menerapkan kontrol tata kelola data di MongoDB. Di MongoDB 5.0, validasi skema menjadi lebih sederhana dan ramah pengguna. Saat suatu operasi gagal divalidasi, MongoDB menghasilkan pesan error deskriptif. Pesan ini membantu Anda memahami dokumen mana yang tidak sesuai dengan aturan validator koleksi dan alasannya, sehingga Anda dapat dengan cepat mengidentifikasi serta memperbaiki kode yang melanggar aturan tersebut.

Pembuatan indeks yang dapat dilanjutkan

Di MongoDB 5.0, pembuatan indeks yang sedang berlangsung secara otomatis dilanjutkan dari titik terakhir setelah restart node. Hal ini mengurangi dampak bisnis dari tindakan maintenance terencana. Misalnya, saat Anda me-restart atau meningkatkan versi node database, Anda tidak perlu lagi khawatir pembuatan indeks yang sedang berjalan pada koleksi besar akan gagal.

Perubahan model rilis

Karena MongoDB mendukung banyak versi dan platform, setiap rilis harus divalidasi di lebih dari 20 platform yang didukung. Validasi ekstensif ini memperlambat pengiriman fitur baru. Oleh karena itu, mulai MongoDB 5.0, rilis dibagi menjadi Major Release dan Rapid Release. Rapid Release tersedia untuk diunduh untuk tujuan pengembangan dan pengujian, tetapi tidak direkomendasikan untuk lingkungan produksi.

Fitur lainnya

Untuk informasi lebih lanjut tentang fitur-fitur MongoDB 5.0, lihat Catatan rilis MongoDB 5.0.