全部产品
Search
文档中心

ApsaraDB for MongoDB:Fitur baru MongoDB 5.0

更新时间:Jun 27, 2025

Tema ini menjelaskan fitur baru yang diperkenalkan dalam MongoDB 5.0.

Informasi latar belakang

MongoDB 5.0 menandai siklus rilis baru untuk mempercepat penyediaan fitur baru kepada pengguna. Kombinasi API Berbasis Versi dan resharding langsung mengatasi tantangan selama pemutakhiran database dan perubahan bisnis. Platform deret waktu asli memungkinkan MongoDB mendukung berbagai beban kerja dan skenario bisnis yang lebih luas, sementara Mongo Shell baru meningkatkan pengalaman pengguna.

Platform deret waktu asli

MongoDB 5.0 secara asli mendukung seluruh siklus hidup data deret waktu, mulai dari injeksi, penyimpanan, kueri, analisis waktu nyata, visualisasi, hingga pengarsipan daring atau kedaluwarsa otomatis saat data bertambah usia. Hal ini menyederhanakan pembuatan dan pengoperasian aplikasi deret waktu serta menurunkan biaya. MongoDB 5.0 memperluas platform data aplikasi universal untuk membantu pengembang memproses data deret waktu dengan lebih mudah, memperluas skenario aplikasi ke area seperti IoT, analisis keuangan, dan logistik.

Koleksi deret waktu MongoDB secara otomatis menyimpan data dalam format yang sangat dioptimalkan dan dikompresi, mengurangi ukuran penyimpanan dan I/O untuk memberikan performa lebih baik pada skala besar. Selain itu, koleksi deret waktu mempersingkat siklus pengembangan sehingga Anda dapat dengan cepat membangun model yang dioptimalkan untuk persyaratan performa dan analisis aplikasi deret waktu.

Anda dapat menjalankan perintah berikut untuk membuat koleksi data deret waktu:

db.createCollection("collection_name",{ timeseries: { timeField: "timestamp" } } )

MongoDB secara otomatis menyesuaikan frekuensi akuisisi dan memproses nilai pengukuran yang tidak berurutan berdasarkan partisi waktu yang dihasilkan secara dinamis. MongoDB Connector untuk Apache Kafka yang baru dirilis mendukung deret waktu secara asli. Anda dapat langsung membuat koleksi deret waktu dari pesan topik Kafka, memproses dan mengumpulkan data selama pengumpulan, lalu menuliskannya ke koleksi deret waktu MongoDB.

Koleksi deret waktu secara otomatis membuat indeks terkluster dari data yang diurutkan berdasarkan waktu untuk mengurangi latensi kueri. MongoDB Query API juga memperluas fungsi jendela, memungkinkan Anda menjalankan kueri analitik seperti moving averages dan jumlah kumulatif. MongoDB menambahkan fungsi deret waktu yang kuat seperti exponential moving average (EMA), turunan, dan integral, memungkinkan Anda mendefinisikan jendela dalam satuan waktu seperti moving average 15 menit. Fungsi jendela dapat digunakan untuk mengkueri koleksi deret waktu dan koleksi reguler MongoDB, memberikan metode analisis baru untuk berbagai jenis aplikasi. Selain itu, MongoDB 5.0 menyediakan operator waktu baru, termasuk $dateAdd, $dateSubstract, $dateDiff, dan $dateTrunc, memungkinkan Anda merangkum dan mengkueri data pada jendela waktu kustom.

Anda dapat mengelola data deret waktu MongoDB bersama dengan data lainnya dari perusahaan Anda. Koleksi deret waktu dapat ditempatkan bersama koleksi MongoDB reguler di database yang sama, menghilangkan kebutuhan untuk menggunakan database deret waktu khusus atau integrasi kompleks. MongoDB menyediakan platform terpadu yang memungkinkan Anda membangun aplikasi deret waktu berperforma tinggi dan efisien, serta mendukung kasus penggunaan atau beban kerja lainnya.

Resharding data langsung

Konfigurasikan versi database

Deskripsi

Metode implementasi

Versi sebelumnya MongoDB

Proses resharding kompleks dan memerlukan operasi manual.

  • Metode 1: Pertama-tama buang seluruh koleksi, lalu muat ulang database ke koleksi baru dengan menggunakan kunci shard baru.

    Proses ini memerlukan pemrosesan offline. Aplikasi Anda akan tetap ditangguhkan untuk waktu yang lama saat proses pemuatan ulang sedang diselesaikan. Sebagai contoh, pembuangan dan pemuatan ulang koleksi yang lebih besar dari 10 TB pada kluster tiga shard mungkin membutuhkan beberapa hari untuk diselesaikan.

  • Metode 2: Buat kluster sharded baru, konfigurasikan kunci shard untuk koleksi, lalu lakukan migrasi kustom untuk menulis koleksi yang ingin Anda reshard dari kluster sharded yang ada ke kluster sharded baru berdasarkan kunci shard yang dikonfigurasi.

    • Selama proses ini, Anda harus menangani routing kueri dan logika migrasi dan terus memeriksa kemajuan migrasi untuk memastikan bahwa semua data dimigrasi.

    • Migrasi kustom adalah tugas yang sangat kompleks, memakan tenaga kerja, dan memakan waktu yang mungkin menimbulkan risiko. Sebagai contoh, satu pengguna MongoDB menghabiskan tiga bulan untuk memigrasikan 10 miliar dokumen.

MongoDB 5.0

  • Anda dapat menjalankan perintah reshardCollection untuk memulai resharding.

  • Proses resharding efisien.

    Bukan hanya sekadar menyeimbangkan ulang data, proses resharding menyalin dan menulis ulang semua data koleksi saat ini ke koleksi baru di latar belakang. Selama proses ini, penulisan baru aplikasi juga disinkronkan.

  • Proses resharding sepenuhnya otomatis.

    Periode resharding dipersingkat dari minggu atau bulan menjadi menit atau jam, dan migrasi data manual yang panjang dan kompleks dihindari.

  • Dengan resharding daring, Anda dapat dengan mudah mengevaluasi efek kunci shard yang berbeda di lingkungan pengembangan atau pengujian. Anda juga dapat memodifikasi kunci shard.

Anda dapat mengubah kunci shard untuk koleksi Anda sesuai permintaan saat beban kerja Anda bertambah atau berkembang. Tidak diperlukan downtime database atau migrasi kompleks dalam dataset dalam proses ini. Anda dapat menjalankan perintah reshardCollection di MongoDB Shell untuk memilih database dan koleksi yang ingin Anda reshard dan menentukan kunci shard baru.

reshardCollection: "<database>.<collection>", key: <shardkey>
Catatan
  • <database>: nama database yang ingin Anda reshard.

  • <collection>: nama koleksi yang ingin Anda reshard.

  • <shardkey>: nama kunci shard.

  • Saat Anda menjalankan perintah reshardCollection di MongoDB, ia mengkloning koleksi yang ada lalu menerapkan semua log operasi di koleksi yang ada ke yang baru. Setelah menerapkan semua log operasi, MongoDB beralih ke koleksi baru dan menghapus koleksi yang ada.

API Berbasis Versi

  • Meningkatkan kompatibilitas dengan aplikasi

    Fitur API Berbasis Versi MongoDB 5.0 mendefinisikan serangkaian perintah dan parameter yang paling umum digunakan dalam aplikasi. Perintah-perintah ini tetap tidak berubah di semua rilis database, termasuk rilis utama tahunan dan rilis cepat kuartalan. Dengan demikian, siklus hidup aplikasi dipisahkan dari siklus hidup database, memungkinkan Anda menetapkan driver ke versi tertentu dari MongoDB API. Bahkan setelah database ditingkatkan, aplikasi Anda dapat terus berjalan tanpa memodifikasi kode.

  • Memungkinkan penambahan fitur baru dan peningkatan secara fleksibel

    API Berbasis Versi memungkinkan penambahan fitur baru ke database setiap versi dengan kompatibilitas mundur penuh. Saat mengubah API, Anda dapat menjalankan versi baru API di server yang sama bersamaan dengan versi API yang ada. Fitur ini memberikan akses lebih mudah ke fitur-fitur versi terbaru saat MongoDB dirilis dengan kecepatan lebih cepat.

Pengaturan mayoritas default write concern.

Mulai MongoDB 5.0, peringkat default Write Concern adalah mayoritas. Operasi tulis dikomit dan keberhasilan tulis dikembalikan ke aplikasi hanya ketika operasi tulis diterapkan ke node primer dan disimpan ke log sebagian besar node sekunder. Ini memastikan bahwa MongoDB 5.0 memberikan jaminan durabilitas data yang lebih kuat secara out-of-the-box.

Catatan

Write Concern sepenuhnya dapat disesuaikan. Anda dapat menyetel Write Concern untuk menyeimbangkan performa database dan durabilitas data.

Optimalisasi manajemen koneksi

Secara default, koneksi klien sesuai dengan thread di server MongoDB backend. Dengan kata lain, net.serviceExecutor disetel ke synchronous. Sejumlah besar sumber daya sistem diperlukan untuk membuat, beralih, atau menghapus thread. Saat sejumlah besar koneksi klien ada, thread mengonsumsi sejumlah besar sumber daya.

Situasi di mana jumlah koneksi besar atau pembuatan koneksi tidak terkendali disebut sebagai "badai koneksi". Badai koneksi sering terjadi ketika layanan sudah melambat.

Sebagai tanggapan, MongoDB 5.0 mengambil langkah-langkah berikut:

  • Batasi jumlah koneksi yang coba dibuat oleh driver, melindungi server database dari kelebihan beban.

  • Kurangi frekuensi driver memeriksa kumpulan koneksi, memungkinkan node server yang tidak responsif atau kelebihan beban untuk menyangga dan pulih.

  • Izinkan driver beralih ke server yang lebih cepat dengan kumpulan koneksi paling sehat daripada memilih server yang tersedia secara acak.

Langkah-langkah di atas dan peningkatan yang dilakukan di lapisan perutean kueri mongos di versi sebelumnya lebih meningkatkan kemampuan MongoDB untuk menangani konkurensi tinggi.

Kueri snapshot jangka panjang.

Kueri snapshot jangka panjang meningkatkan kegunaan dan fleksibilitas aplikasi. Secara default, kueri snapshot memiliki durasi 5 menit, yang dapat disesuaikan. Fitur ini mempertahankan konsistensi kuat dengan jaminan isolasi snapshot tanpa memengaruhi performa beban kerja langsung dan transaksional, serta memungkinkan Anda menjalankan kueri snapshot pada node sekunder. Ini memungkinkan Anda menjalankan beban kerja berbeda dalam satu kluster dan menskalakan beban kerja ke shard yang berbeda.

MongoDB mengimplementasikan kueri snapshot jangka panjang melalui proyek bernama Durable History di mesin penyimpanan bawah. Proyek ini telah tersedia sejak MongoDB 4.4. Durable History menyimpan snapshot dari semua nilai bidang yang telah berubah sejak awal kueri. Kueri dapat menggunakan durable history untuk mempertahankan isolasi snapshot. Jika data berubah, durable history juga membantu mengurangi tekanan caching mesin penyimpanan dan memungkinkan throughput kueri yang lebih tinggi dalam skenario beban tulis tinggi.

MongoDB Shell Baru

Untuk pengalaman pengguna yang lebih baik, MongoDB Shell telah didesain ulang dari bawah ke atas untuk memberikan pengalaman baris perintah modern, fitur kegunaan yang ditingkatkan, dan lingkungan skrip yang kuat. MongoDB Shell baru menjadi shell default untuk MongoDB, memperkenalkan sorotan sintaksis, penyelesaian otomatis cerdas, bantuan kontekstual, dan pesan kesalahan yang berguna untuk menciptakan pengalaman visual dan interaktif.

  • Pengalaman Pengguna yang Ditingkatkan

    • Pelaksanaan kueri dan agregasi yang lebih mudah, serta peningkatan keterbacaan

      MongoDB Shell baru mendukung sorotan sintaksis, memudahkan Anda membedakan bidang, nilai, dan tipe data untuk menghindari kesalahan sintaksis. Jika kesalahan tetap ada, MongoDB Shell baru dapat menunjukkan masalah dan memberikan solusi.

    • Pengetikan kueri dan perintah yang lebih cepat

      MongoDB Shell baru menyediakan fitur penyelesaian otomatis cerdas, memberikan petunjuk penyelesaian otomatis untuk metode, perintah, dan ekspresi MQL berdasarkan versi MongoDB Anda.

      Jika Anda lupa sintaksis suatu perintah, Anda dapat dengan cepat mencarinya di MongoDB Shell. Contoh sintaksis: Sample syntax

  • Lingkungan Skrip Lanjutan

    Lingkungan skrip MongoDB Shell baru dibangun di atas interpreter interaktif Node.js REPL. Anda dapat menggunakan semua API Node.js dan modul npm dalam skrip Anda, serta memuat dan menjalankan skrip dari sistem file. Di MongoDB Shell baru, Anda dapat terus menggunakan metode load() dan fungsi eval() untuk menjalankan skrip seperti yang Anda lakukan di versi sebelumnya.

  • Ekspansibilitas dan Plug-in

    MongoDB Shell baru dapat dengan mudah diperluas, memungkinkan Anda menggunakan semua fitur MongoDB untuk meningkatkan produktivitas.

    Plug-in Snippets dapat diinstal di MongoDB Shell baru. Snippets dapat dimuat secara otomatis ke MongoDB Shell dan menggunakan semua API Node.js dan paket npm. MongoDB memelihara repositori Snippets yang menyediakan fitur seperti plug-in analisis untuk pola koleksi tertentu. Anda juga dapat mengonfigurasi MongoDB Shell untuk menggunakan plug-in tertentu.

    Catatan

    Plug-in saat ini merupakan fitur eksperimental dari MongoDB Shell.

PyMongoArrow dan ilmu data

API PyMongoArrow baru memungkinkan Anda melaksanakan tugas analisis dan pembelajaran mesin yang kompleks di MongoDB menggunakan Python. PyMongoArrow dapat dengan cepat mengonversi hasil kueri MongoDB sederhana ke format data populer seperti Pandas DataFrames dan array NumPy untuk menyederhanakan alur kerja ilmu data Anda.

Peningkatan validasi skema

Validasi skema adalah metode yang digunakan MongoDB untuk manajemen aplikasi data. Di MongoDB 5.0, validasi skema menjadi lebih sederhana dan ramah pengguna. Saat validasi operasi gagal, pesan kesalahan deskriptif dihasilkan untuk menyoroti dokumen yang tidak sesuai dengan aturan validasi koleksi dan alasannya. Dengan cara ini, Anda dapat dengan cepat mengidentifikasi dan memperbaiki kode kesalahan yang memengaruhi aturan validasi.

Tugas pembuatan indeks yang dapat dilanjutkan

Jika tugas pembuatan indeks yang sedang berlangsung mengalami restart node, MongoDB 5.0 memungkinkan tugas tersebut secara otomatis dilanjutkan dari tempat terakhir. Ini mengurangi dampak operasi pemeliharaan yang direncanakan pada bisnis. Misalnya, saat node database di-restart atau ditingkatkan, Anda tidak perlu khawatir bahwa tugas pembuatan indeks yang sedang berlangsung untuk koleksi besar mungkin gagal.

Penyesuaian rilis versi

MongoDB mendukung berbagai versi dan platform, dan setiap versi perlu diverifikasi pada lebih dari 20 platform yang didukung MongoDB. Beban verifikasi yang berat membuat pengiriman fitur MongoDB baru menjadi lebih lambat. Untuk meningkatkan kecepatan pengiriman, mulai dengan rilis 5.0, MongoDB dirilis sebagai dua seri berbeda: Rilis Utama dan Rilis Cepat. Rilis Cepat tersedia untuk tujuan evaluasi dan pengembangan. Kami merekomendasikan agar Anda tidak menggunakan Rilis Cepat di lingkungan produksi.

Lebih banyak fitur

Untuk informasi tentang fitur lainnya, lihat Catatan Rilis untuk MongoDB 5.0.