All Products
Search
Document Center

ApsaraDB for MongoDB:Versi dan mesin penyimpanan

Last Updated:Sep 17, 2026

Topik ini menjelaskan versi, mesin penyimpanan, dan kompatibilitas ApsaraDB for MongoDB untuk membantu Anda memilih instans yang paling sesuai dengan kebutuhan bisnis Anda.

Versi yang didukung

ApsaraDB for MongoDB mendukung versi berikut:

Catatan

Anda dapat melakukan upgrade manual terhadap versi utama database dari instans yang sedang berjalan. Namun, Anda tidak dapat menurunkan spesifikasi. Untuk informasi lebih lanjut, lihat Upgrade versi utama database.

Mesin penyimpanan

Mesin penyimpanan

Skenario

Deskripsi

WiredTiger

Mesin penyimpanan default untuk sebagian besar beban kerja.

Mengorganisasi data menggunakan struktur Pohon-B dan menawarkan peningkatan kinerja signifikan dibandingkan mesin penyimpanan MMAPv1 MongoDB versi sebelumnya. Mesin ini juga mendukung kompresi data untuk mengurangi biaya penyimpanan.

Kompatibilitas versi dan mesin penyimpanan

Mesin penyimpanan

MongoDB 4.4 dan versi setelahnya

MongoDB 4.2

MongoDB 4.0

MongoDB 3.4 (Tidak lagi didukung)

WiredTiger

  • instans set replika

  • instans kluster sharded

  • instans set replika

  • instans kluster sharded

  • instans mandiri

  • instans set replika

  • instans kluster sharded

  • instans mandiri

  • instans set replika

  • instans kluster sharded

MongoDB 8.3

Versi ini memperkenalkan fitur-fitur baru, termasuk agregasi yang ditingkatkan, proses manajemen sharding yang direfaktor, log kueri lambat yang sedang berjalan, dan pelacakan memori tingkat kueri. Versi ini juga membawa optimasi pada kinerja, parameter sistem, indeks, dan deret waktu.

  • Agregasi yang ditingkatkan: Menambahkan akses indeks array, ekspresi baru seperti $hash dan $hexHash, serta konversi tipe yang diperbaiki untuk $toString dan $convert.

  • Proses manajemen sharding yang direfaktor: Perintah removeShard sudah tidak digunakan lagi dan digantikan dengan proses empat tahap menggunakan perintah startShardDraining, stopShardDraining, shardDrainingStatus, dan commitShardRemoval. Proses baru ini mendukung operasi jeda dan lanjut.

  • Pemantauan dan diagnostik yang ditingkatkan: Menambahkan log kueri lambat yang sedang berjalan, pelacakan memori tingkat kueri (inUseTrackedMemBytes dan peakTrackedMemBytes), serta output on-demand untuk serverStatus.

  • Kinerja dan parameter sistem: Menambahkan parameter baru untuk kontrol sumber daya koneksi pra-otentikasi, reklamasi sumber daya otomatis saat tekanan cache, dan pemilihan layanan yang sadar beban berlebih.

  • Perubahan indeks: Meningkatkan nilai default 2dsphereVersion menjadi 4, memprioritaskan GeoJSON dibandingkan pasangan koordinat lama.

Untuk informasi lebih lanjut, lihat Fitur Baru di MongoDB 8.3.

MongoDB 8.0

Rilis ini memperkenalkan TCMalloc yang ditingkatkan, kinerja replikasi dan resharding yang dioptimalkan, serta peningkatan pada sharding, logging, agregasi, dan keamanan.

  • TCMalloc yang ditingkatkan

    TCMalloc yang ditingkatkan menggunakan cache per-CPU alih-alih cache per-thread untuk mengurangi fragmentasi memori dan meningkatkan ketahanan database di bawah beban kerja berat. Selain itu, TCMalloc yang ditingkatkan membuat thread latar belakang yang mencoba melepaskan memori kembali ke sistem operasi setiap detik.

  • Kinerja replikasi

    Mulai MongoDB 8.0, ketika writeConcern diatur ke majority, MongoDB mengakui operasi tulis setelah mayoritas anggota set replika menulis entri oplog yang sesuai, tanpa menunggu perubahan diterapkan. Perubahan ini meningkatkan kinerja tulis dalam mode majority.

    Anggota secondary kini menulis dan menerapkan batch oplog secara paralel. Saat thread penulis membaca entri oplog baru dari anggota primary dan menulisnya ke oplog lokal, thread applier secara asinkron menerapkan perubahan tersebut ke database lokal. Perubahan ini meningkatkan throughput replikasi pada anggota secondary.

  • Kinerja resharding

    MongoDB 8.0 memperkenalkan opsi forceRedistribution, yang memungkinkan Anda melakukan resharding koleksi dengan kunci shard yang sama, mendistribusikan ulang data ke shard baru. Proses ini jauh lebih cepat daripada migrasi chunk berbasis rentang dan dapat digunakan dengan opsi zones untuk memindahkan data ke zona tertentu.

  • Sharding

    • Sharding hash kini membuat satu chunk per shard secara default, dibandingkan dua chunk pada versi sebelum MongoDB 8.0.

    • Perintah dbhash kini dapat dijalankan langsung pada sebuah shard.

    • Perintah findAndModify dan deleteOne kini dapat menggunakan kunci shard parsial dalam filter kueri.

    • Saat Anda menggunakan perintah updateOne dengan upsert diatur ke true pada koleksi sharded, filter kueri tidak perlu lagi menyertakan kunci shard lengkap.

    • Anda kini dapat meng-unshard koleksi yang ada dengan menggunakan perintah unshardCollection atau metode sh.unshardCollection(). Operasi ini memindahkan semua dokumen dalam koleksi ke shard tertentu atau shard dengan beban paling ringan.

    • Perintah moveCollection kini memungkinkan Anda memindahkan koleksi non-sharded ke shard tertentu, tanpa dibatasi hanya ke shard utama. Namun, koleksi deret waktu dan koleksi dengan enkripsi yang dapat dikueri tidak dapat dipindahkan. Operasi ini mungkin memblokir sementara operasi tulis ke koleksi selama sekitar dua detik.

    • Rilis ini memperkenalkan perintah database baru dan helper mongosh:

      Perintah

      Helper Mongosh

      Deskripsi

      moveCollection

      sh.moveCollection()

      Memindahkan koleksi non-sharded ke shard tertentu.

      unshardCollection

      sh.unshardCollection()

      Meng-unshard koleksi sharded yang ada dan memindahkan datanya ke shard tertentu.

      abortMoveCollection

      sh.abortMoveCollection()

      Menghentikan operasi moveCollection yang sedang berjalan.

      abortUnshardCollection

      sh.abortUnshardCollection()

      Menghentikan operasi unshardCollection yang sedang berjalan.

      None

      sh.shardAndDistributeCollection()

      Men-shard koleksi dan segera mendistribusikan ulang datanya menggunakan kunci shard yang disediakan.

      Menjalankan helper ini setara dengan menjalankan shardCollection dan reshardCollection secara berurutan dan dimaksudkan untuk mempercepat perpindahan data.

  • Logging

    Log kueri lambat kini menyertakan bidang workingMillis, yang menunjukkan waktu operasi dieksekusi secara aktif.

    Berbeda dengan durationMillis, yang mengukur latensi total operasi, workingMillis tidak mencakup waktu yang dihabiskan untuk menunggu sumber daya, seperti kunci atau kontrol aliran.

  • Agregasi

    • Konversi binData

      Operator $convert kini mendukung konversi berikut:

      • Mengonversi nilai string ke nilai binData.

      • Mengonversi nilai binData ke nilai string.

      Selain itu, ekspresi $toUUID menyediakan sintaks yang disederhanakan untuk mengonversi string ke nilai UUID.

    • $queryStats

      Tahap $queryStats mengembalikan statistik untuk kueri yang dilog dan meningkatkan pelacakan serta pelaporan metrik dalam change stream.

  • Keamanan

    • Enkripsi yang dapat dikueri

      Anda dapat menggunakan $lt, $lte, $gt, dan $gte untuk melakukan kueri rentang pada bidang yang dienkripsi.

    • Antrian Ingress

      MongoDB 8.0 memperkenalkan antrian baru untuk kontrol admission ingress (ingressAdmissionControllerTicketPoolSize). Operasi yang masuk ke database dari jaringan memasuki antrian ingress ini.

      Secara default, antrian ingress tidak terbatas, tetapi Anda dapat mengonfigurasi ukuran maksimumnya.

  • Optimasi lainnya

    • Rilis ini memperkenalkan Query Shape baru. Query Shape sebelumnya kini disebut Plan Cache Query Shape. Pengoptimal kueri juga menggunakan Query Settings sebagai input tambahan, yang memengaruhi pemilihan rencana kueri akhir.

      • setQuerySettings menambahkan pengaturan kueri:

        • Anda dapat menggunakan perintah ini untuk menentukan indeks yang akan dipilih. MongoDB 8.0 menghentikan penggunaan planCacheSetFilter untuk mengatur index filter.

        • Anda dapat menggunakan perintah ini untuk mengonfigurasi pembatasan laju. Opsi reject memungkinkan Anda menolak Query Shape tertentu.

      • removeQuerySettings menghapus pengaturan kueri.

      • $querySettings menampilkan pengaturan kueri.

    • Perintah explain() kini mengembalikan waktu yang dihabiskan untuk optimasi rencana kueri dalam milidetik melalui queryPlanner.optimizationTimeMillis.

    • Parameter baru defaultMaxTimeMS menentukan batas waktu default dalam milidetik untuk menyelesaikan satu operasi baca.

      • Operasi yang berlaku:

        • find

        • aggregate (tidak termasuk tahap $merge dan $out)

        • count

        • distinct

        • dbHash

      • Jika klien menentukan maxTimeMS, defaultMaxTimeMS diabaikan untuk operasi tersebut.

    • Perintah baru bulkWrite memungkinkan Anda melakukan beberapa operasi insert, update, dan delete pada beberapa koleksi dalam satu permintaan.

    • Perintah updateOne kini mendukung opsi sort.

    • Anda kini dapat membuat indeks TTL pada koleksi capped.

    • Insert massal non-transaksional kini dibundel menjadi satu entri oplog alih-alih menghasilkan entri terpisah untuk setiap insert. Semua dokumen yang di-insert memiliki clusterTime yang sama dalam event change stream. Perubahan ini meningkatkan kinerja insert massal dan membantu mencegah lag replikasi yang dapat terjadi saat anggota secondary memutar ulang beberapa entri oplog.

    • Operasi DDL konkuren kini dapat dijalankan pada koleksi berbeda dalam database yang sama.

    • Menambah atau menghapus shard diblokir selama operasi DDL yang memodifikasi koleksi, seperti reshardCollection, sedang berjalan di kluster. Anda hanya dapat melakukan tindakan ini setelah operasi DDL selesai.

    • Pembuatan indeks kini lebih cepat melaporkan error dan memiliki ketahanan kesalahan yang lebih baik.

      Perilaku

      MongoDB 8.0

      Sebelum MongoDB 8.0

      Saat pembuatan indeks berhenti karena error

      Error indeks, kecuali error kunci duplikat, yang ditemukan selama fase pemindaian koleksi dikembalikan segera, menghentikan pembuatan indeks.

      MongoDB 8.0 membantu Anda mendiagnosis error indeks lebih cepat. Misalnya, jika ditemukan format nilai indeks yang tidak kompatibel, error dikembalikan segera.

      Error indeks yang ditemukan selama pemindaian koleksi dilaporkan selama fase commit di akhir pembuatan indeks.

      Dibandingkan MongoDB 8.0, error pembuatan indeks bisa memakan waktu jauh lebih lama untuk dikembalikan karena hanya dilaporkan selama fase commit.

      Ketahanan

      Anggota secondary dapat meminta anggota primary menghentikan pembuatan indeks jika terjadi error. Hal ini meningkatkan ketahanan penerapan dengan mencegah anggota secondary crash.

      Permintaan untuk menghentikan pembuatan indeks tidak selalu memungkinkan. Jika anggota telah memberikan suara untuk commit indeks, anggota secondary tidak dapat meminta penghentian dan akan crash, mirip dengan perilaku di MongoDB 7.0 dan versi sebelumnya.

      Error pembuatan indeks dapat menyebabkan anggota secondary crash.

      Disk space

      Pembuatan indeks secara otomatis dibatalkan jika ruang disk yang tersedia turun di bawah nilai minimum yang ditentukan dalam parameter indexBuildMinAvailableDiskSpaceMB.

      Pembuatan indeks tidak dihentikan jika anggota telah memberikan suara untuk commit indeks.

      Pembuatan indeks juga dibatalkan jika ruang disk tidak mencukupi.

MongoDB 7.0

Rilis ini memperkenalkan fitur-fitur baru seperti enkripsi yang dapat dikueri, pemeriksaan konsistensi metadata shard, kueri sampel dan analisis kunci shard (analyzeShardKey), serta AutoMerger. Rilis ini juga mencakup peningkatan dan optimasi untuk sharding, koleksi deret waktu, agregasi, dan keamanan.

  • Enkripsi yang dapat dikueri

    Enkripsi yang dapat dikueri tersedia sebagai fitur pratinjau di MongoDB 6.0. Di MongoDB 7.0, fitur ini kini Tersedia Umum (GA). Untuk informasi lebih lanjut, lihat Enkripsi yang Dapat Dikueri.

  • Pemeriksaan konsistensi metadata shard

    MongoDB 7.0 memperkenalkan perintah checkMetadataConsistency untuk memeriksa inkonsistensi metadata di berbagai shard. Tambahkan pemeriksaan ini ke prosedur maintenance rutin Anda untuk mendeteksi potensi inkonsistensi lebih awal. Untuk informasi lebih lanjut, lihat checkMetadataConsistency.

  • Kueri sampel dan analisis kunci shard

    Rilis ini mendukung analisis kesesuaian kunci shard koleksi berdasarkan hasil kueri sampel. Hal ini dapat membantu Anda merancang skema dan kunci shard yang lebih efektif serta memanfaatkan arsitektur sharding Anda secara optimal. Untuk informasi lebih lanjut, lihat analyzeShardKey dan configureQueryAnalyzer.

  • AutoMerger

    MongoDB 7.0 memperkenalkan AutoMerger baru untuk Balancer. Saat distribusi data atau indeks tidak merata, terlalu banyak chunk, atau selama migrasi data, AutoMerger menggabungkan chunk untuk menyeimbangkan data dan meningkatkan kinerja. Fitur ini diaktifkan secara default di MongoDB 7.0, dan Anda dapat mengelolanya melalui jendela aktif Balancer.

  • Sharding

    • Anda kini dapat menggunakan parameter rangeDeleterHighPriority untuk memberikan prioritas lebih tinggi pada penghapusan dokumen yatim. Secara default, parameter ini diatur ke false karena penghapusan tingkat aplikasi biasanya memiliki prioritas lebih tinggi.

    • Metrik pemantauan operationsBlockedByRefresh, yang melacak perilaku refresh cache katalog, tidak lagi didukung karena setiap operasi pada mongos yang menggunakan informasi routing koleksi akan menambah penghitung ini.

    • Rilis ini menambahkan metrik pemantauan baru untuk resharding.

    • Perintah addShard tidak lagi mendukung opsi maxSize.

    • Saat Anda menyesuaikan ukuran chunk untuk koleksi config.settings, pemeriksaan validasi kini membatasi nilainya pada rentang [1, 1024].

    • Mulai MongoDB 6.0.3, beberapa penyesuaian telah dilakukan pada kebijakan Balancer:

      • Balancer tidak lagi menyeimbangkan berdasarkan perbedaan jumlah chunk di berbagai shard. Sebaliknya, ia menyeimbangkan berdasarkan perbedaan ukuran data di berbagai shard.

      • Sebuah rentang menggantikan konsep logis chunk.

      • Pemisahan otomatis hanya terjadi saat rentang berpindah antar shard.

  • Koleksi deret waktu

    • Rilis ini menghapus batasan operasional pada perintah DELETE untuk koleksi deret waktu. Perintah DELETE kini tidak memiliki batasan, kecuali tidak dapat digunakan dalam transaksi multi-dokumen.

    • Perintah COMPACT kini mendukung koleksi deret waktu.

  • Agregasi

    Rilis ini memperkenalkan operator berikut untuk mendukung perhitungan bitwise dan persentil:

    Parameter

    Deskripsi

    $bitAnd

    Mengembalikan hasil operasi AND bitwise pada nilai Int32 atau Int64.

    $bitNot

    Mengembalikan hasil operasi NOT bitwise pada nilai Int32 atau Int64.

    $bitOr

    Mengembalikan hasil operasi OR bitwise pada nilai Int32 atau Int64.

    $bitXor

    Mengembalikan hasil operasi XOR bitwise pada nilai Int32 atau Int64.

    $median

    Mengembalikan median perkiraan, yang setara dengan persentil ke-50.

    $percentile

    Mengembalikan nilai untuk persentil yang ditentukan.

  • Keamanan

    • MongoDB mendukung KMIP 1.0 dan 1.1.

    • MongoDB mendukung OpenSSL 3.0 dan OpenSSL FIPS.

  • Optimasi lainnya

    • Log kueri lambat kini menyertakan bidang baru, seperti catalogCacheIndexLookupDurationMillis. Untuk informasi lebih lanjut, lihat pesan log untuk kueri lambat.

    • Mulai MongoDB 7.0, MongoDB secara otomatis dan dinamis menyesuaikan konkurensi transaksi mesin penyimpanan, yang sebelumnya memiliki nilai default 128. Untuk informasi lebih lanjut, lihat Transaksi Mesin Penyimpanan Konkuren.

    • Perintah currentOp kini menyertakan bidang baru terkait sampling kueri. Untuk informasi lebih lanjut, lihat metrik currentop.

    • Rilis ini menambahkan dukungan untuk indeks wildcard gabungan. Untuk informasi lebih lanjut, lihat Indeks Wildcard Gabungan.

    • Operator baru $changeStreamSplitLargeEvent mendukung pemisahan event perubahan besar yang melebihi 16 MB. Untuk informasi lebih lanjut, lihat Event Change Stream Besar.

    • Rilis ini meningkatkan kinerja mesin eksekusi kueri berbasis slot.

    • Rilis ini menambahkan metrik baru untuk migrasi chunk. Untuk informasi lebih lanjut, lihat Statistik Sharding Baru untuk Migrasi Chunk.

    • Anda kini dapat menggunakan variabel sistem USER_ROLES untuk mengambil peran pengguna saat ini.

    • Rilis ini menambahkan parameter global baru terkait analyzeShardKey, balancer, dan queryAnalyzers.

    • Output perintah serverStatus kini menyertakan bidang tambahan. Untuk informasi lebih lanjut, lihat Perubahan Output serverStatus.

Catatan rilis MongoDB 6.0

Rilis ini memperkenalkan fitur-fitur baru seperti enkripsi yang dapat dikueri dan Sinkronisasi Kluster-ke-Kluster. Rilis ini juga mencakup peningkatan dan optimasi untuk koleksi deret waktu, change stream, agregasi, kueri, elastisitas, dan keamanan.

  • Enkripsi yang dapat dikueri

    Enkripsi yang dapat dikueri memungkinkan Anda mengenkripsi data sensitif di sisi klien, menyimpannya sebagai data terenkripsi yang sepenuhnya diacak di server database, dan menjalankan kueri ekspresif pada data terenkripsi tersebut.

    Dengan enkripsi yang dapat dikueri, data teks biasa hanya terlihat di sisi klien. Saat kueri dikirim ke server, kueri tersebut menyertakan kunci enkripsi dari Key Management Service (KMS). Server memproses kueri terhadap ciphertext dan mengembalikan hasil yang dienkripsi. Klien kemudian menggunakan kunci tersebut untuk mendekripsi hasil dan menampilkan data teks biasa.

  • Sinkronisasi Kluster-ke-Kluster

    Rilis ini memperkenalkan mongosync, tool sinkronisasi baru yang mendukung sinkronisasi data unidireksional kontinu antara dua kluster MongoDB. Tool ini berfungsi di semua lingkungan, termasuk hybrid, Atlas, on-premises, dan edge. Anda juga dapat mengontrol dan memantau proses sinkronisasi secara real-time, serta memulai, menghentikan, melanjutkan, atau membalik arah sinkronisasi sesuai kebutuhan.

  • Koleksi deret waktu

    Rilis ini meningkatkan koleksi deret waktu dengan perbaikan pada pengindeksan, kueri, dan pengurutan.

    • Menambahkan dukungan untuk indeks sekunder dan indeks gabungan untuk meningkatkan kinerja baca.

    • Memperkenalkan pengindeksan geospasial untuk data deret waktu. Hal ini memungkinkan Anda menambahkan informasi geografis ke data Anda, yang membantu analisis dalam skenario yang melibatkan jarak dan lokasi.

      Sebagai contoh, Anda dapat melacak perubahan suhu di truk berpendingin atau memantau konsumsi bahan bakar kapal kargo pada rute tertentu.

    • Mengoptimalkan kueri titik terakhir pada data deret waktu. Anda tidak perlu lagi memindai seluruh koleksi untuk mengkueri titik data terakhir.

    • Memperbaiki kinerja pengurutan untuk data deret waktu. Operasi pengurutan kini berjalan lebih efisien dengan menggunakan indeks terkluster dan indeks sekunder pada bidang waktu dan metadata.

  • Change stream

    Rilis ini memperkenalkan fitur dan optimasi baru berikut:

    • Dukungan untuk melihat pre-image dokumen.

      Catatan

      Versi MongoDB sebelum 6.0 hanya mendukung post-image. Mulai MongoDB 6.0, Anda dapat melihat pre-image dan post-image. Untuk informasi lebih lanjut, lihat Change Stream dengan Pre- dan Post-Image Dokumen.

    • Menambahkan dukungan untuk pernyataan DDL seperti create, createIndexes, modify, dan shardCollection. Untuk informasi lebih lanjut, lihat Event Perubahan.

    • Event perubahan kini menyertakan bidang wallTime. Timestamp mendukung berbagai operator konversi dan tampilan, termasuk $toDate, $tsSeconds, dan tsIncrement, sehingga lebih mudah dikonsumsi aplikasi.

  • Agregasi

    Rilis ini memperkenalkan fitur dan optimasi baru berikut:

    • Instans kluster sharded kini mendukung $lookup dan $graphLookup.

    • Memperbaiki dukungan untuk join dengan $lookup.

    • Menambah kemampuan traversal graf dengan $graphLookup.

    • Memperbaiki kinerja $lookup hingga 100x dalam beberapa skenario.

    Catatan

    Untuk informasi lebih lanjut tentang $lookup dan $graphLookup, lihat $lookup (agregasi) dan $graphLookup (agregasi).

  • Kueri

    Menambahkan operator baru seperti $maxN, $topN, $minN, $bottomN, $lastN, dan $sortArray. Operator-operator ini memindahkan beban komputasi dari aplikasi ke database, sehingga lapisan aplikasi menjadi lebih ringan.

    Catatan

    Untuk informasi lebih lanjut tentang operator-operator ini, lihat Operator Pipeline Agregasi.

  • Elastisitas

    Rilis ini memperkenalkan fitur dan optimasi baru berikut:

    • Ukuran chunk default meningkat dari 64 MB menjadi 128 MB. Hal ini mengurangi frekuensi migrasi data dan menurunkan overhead jaringan serta routing.

    • Menambahkan dukungan untuk perintah configureCollectionBalancing, yang memungkinkan Anda:

      • Menetapkan ukuran chunk berbeda untuk koleksi sharded yang berbeda.

        Sebagai contoh, Anda dapat meningkatkan ukuran chunk menjadi 256 MB untuk koleksi sharded yang sangat besar, atau menurunkannya menjadi 64 MB atau 32 MB untuk koleksi yang lebih kecil agar data lebih merata di seluruh shard.

      • Mendefragmentasi koleksi secara aktif.

        Dibandingkan perintah compact, configureCollectionBalancing mendefragmentasi koleksi lebih efektif, secara signifikan mengurangi penggunaan ruang disk.

      Catatan

      Untuk informasi lebih lanjut tentang perintah configureCollectionBalancing, lihat configureCollectionBalancing.

    • Keamanan

      Rilis ini mengoptimalkan fitur Client-Side Field-Level Encryption (CSFLE). CSFLE kini mendukung penyedia manajemen kunci apa pun yang mematuhi Key Management Interoperability Protocol (KMIP). Selain menggunakan file kunci lokal, Anda kini dapat mengintegrasikan MongoDB dengan perangkat manajemen kunci pihak ketiga melalui KMIP untuk meningkatkan keamanan.

      Catatan

      Fitur CSFLE sering digunakan untuk mengelola data sensitif, terutama selama migrasi data.

MongoDB 5.0

MongoDB 5.0 menandai dimulainya siklus rilis baru yang dirancang untuk menghadirkan fitur-fitur baru kepada pengguna lebih cepat.

  • Platform deret waktu native

    MongoDB 5.0 memperluas platform data tujuan umum untuk menyederhanakan pemrosesan data deret waktu dan memperluas kasus penggunaannya ke bidang seperti IoT, analitik keuangan, dan logistik.

  • Resharding langsung

    Cukup jalankan perintah reshardCollection di MongoDB Shell, pilih database dan koleksi yang akan direshard, lalu tentukan kunci shard 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 baru.

    • Saat Anda menjalankan perintah reshardCollection, MongoDB mengkloning koleksi yang ada dan menerapkan semua entri oplog-nya ke koleksi baru. Setelah semua entri diterapkan, MongoDB beralih ke koleksi baru dan menghapus koleksi lama di latar belakang.

  • API Versi

    API Versi memungkinkan MongoDB menambahkan fitur dan peningkatan baru di setiap rilis sambil mempertahankan kompatibilitas mundur. Jika Anda perlu mengubah API, Anda dapat memperkenalkan versi baru dan menjalankannya di server yang sama bersama versi API yang ada. Seiring MongoDB mempercepat jadwal rilisnya, API Versi membantu Anda menggunakan fitur terbaru lebih cepat dan mudah.

    API Versi mendefinisikan set stabil perintah dan parameter yang paling sering digunakan untuk aplikasi. Set ini tetap tidak berubah terlepas dari pembaruan database dari Rilis Utama tahunan atau Rilis Cepat triwulanan. Dengan menguraikan keterkaitan siklus hidup aplikasi dari siklus hidup database, Anda dapat mengunci driver Anda ke versi tertentu dari API MongoDB. Hal ini memastikan aplikasi Anda dapat berjalan selama bertahun-tahun tanpa perubahan kode, bahkan saat database berevolusi dengan fitur dan peningkatan baru.

  • Write concern mayoritas default

    Mulai MongoDB 5.0, tingkat write concern default adalah majority. Operasi tulis hanya mengembalikan acknowledgment sukses setelah diterapkan ke node primary dan dipertahankan di oplog mayoritas node secondary. Hal ini memberikan jaminan ketahanan data yang lebih kuat secara default.

  • Kueri snapshot berdurasi panjang

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

  • MongoDB Shell baru

    MongoDB Shell (mongosh) telah didesain ulang dari awal untuk pengalaman pengguna yang lebih baik. Shell ini menawarkan pengalaman command-line modern dengan peningkatan kegunaan dan lingkungan skrip yang kuat. MongoDB Shell baru kini menjadi shell default untuk platform MongoDB. Fitur-fitur baru seperti syntax highlighting, autocompletion cerdas, bantuan kontekstual, dan pesan error yang berguna menciptakan pengalaman yang intuitif dan interaktif.

  • Siklus rilis baru

    Mulai MongoDB 5.0, MongoDB merilis versi dalam dua seri: Rilis Utama dan Rilis Cepat. Rilis Cepat ditujukan untuk pengembangan dan evaluasi. Jangan gunakan Rilis Cepat di lingkungan produksi.

Fitur MongoDB 4.4

Rilis ini mengatasi masalah umum pengguna dari versi sebelumnya.

  • Indeks tersembunyi

    Anda dapat menyembunyikan indeks yang ada untuk mencegah penggunaannya dalam kueri berikutnya. Hal ini memungkinkan Anda mengamati dampak kinerja dari menghapus indeks yang berpotensi tidak efisien sebelum menghapusnya secara permanen.

  • Kunci shard yang dapat disempurnakan

    Anda dapat menambahkan satu atau beberapa bidang sufiks ke kunci shard yang ada untuk meningkatkan distribusi dokumen. Hal ini mencegah permintaan berkonsentrasi pada satu shard, mendistribusikan beban server.

  • Kunci shard hash gabungan

    Anda dapat menentukan satu bidang hash dalam indeks komposit. Hal ini sangat menyederhanakan logika aplikasi Anda.

  • Pembacaan hedged

    Untuk instans kluster sharded, Anda dapat mengirim kueri baca ke dua anggota set replika dalam satu shard secara simultan. Kluster kemudian mengembalikan hasil dari anggota yang merespons paling cepat ke klien, yang membantu mengurangi latensi kueri.

  • Replikasi streaming

    Node primary secara proaktif mengalirkan Oplog ke node secondary. Metode ini memangkas waktu round-trip hampir separuh dibandingkan metode polling di versi sebelumnya, meningkatkan kinerja replikasi.

  • Pengindeksan simultan

    Indeks dibuat secara simultan di node primary dan secondary. Hal ini secara signifikan mengurangi lag replikasi selama pembuatan indeks dan memastikan node secondary dapat segera mengakses data terbaru.

  • Pembacaan tercermin

    Node primary dapat mencerminkan persentase trafik baca ke node secondary. Hal ini memastikan node secondary menangani sebagian beban baca, yang membantu mengurangi latensi akses aplikasi.

  • Initial sync yang dapat dilanjutkan

    Fitur ini menyediakan kemampuan transfer yang dapat dilanjutkan selama proses sinkronisasi penuh antara node primary dan secondary. Hal ini mencegah initial sync dimulai ulang jika terjadi gangguan jaringan.

  • Retensi oplog berbasis waktu

    Anda dapat menentukan periode retensi kustom untuk Oplog. Hal ini membantu mencegah node primary menghapus entri Oplog terlalu dini, yang jika tidak dapat memicu sinkronisasi penuh.

  • Union

    Tahap baru $unionWith memungkinkan Anda menggabungkan data dari beberapa koleksi, mirip dengan fungsi union all di SQL. Hal ini meningkatkan kemampuan kueri MongoDB.

  • Ekspresi agregasi kustom

    Operator baru $accumulator dan $function memungkinkan Anda membuat ekspresi agregasi kustom, meningkatkan konsistensi API dan pengalaman pengguna secara keseluruhan.

Catatan

Untuk mempelajari lebih lanjut tentang fitur baru di MongoDB 4.4, lihat Fitur MongoDB 4.4.

MongoDB 4.2

Versi ini menggunakan two-phase commit untuk memastikan properti ACID transaksi dalam kluster sharded. Fitur ini sangat memperluas kasus penggunaan MongoDB.

  • Transaksi terdistribusi

    Two-phase commit memastikan properti ACID transaksi dalam kluster sharded. Fitur ini sangat memperluas kasus penggunaan MongoDB, menandai lompatan dari database NoSQL ke database NewSQL.

  • Pembacaan yang dapat diulang

    Pembacaan yang dapat diulang secara otomatis mengulang operasi di lingkungan jaringan yang tidak andal, menyederhanakan logika aplikasi Anda dan memastikan kelangsungan bisnis.

  • Indeks wildcard

    Indeks wildcard dapat mencakup beberapa bidang dalam dokumen, memberikan fleksibilitas lebih besar untuk skema dengan bidang non-deterministik dan menyederhanakan manajemen.

  • Enkripsi tingkat bidang

    Enkripsi tingkat bidang kini tersedia di lapisan driver, memungkinkan Anda mengenkripsi data sensitif tertentu, seperti nama akun, kata sandi, harga, dan nomor telepon, tanpa mengenkripsi seluruh database. Hal ini meningkatkan fleksibilitas dan keamanan.

  • Tampilan yang di-materialisasi

    Tampilan yang di-materialisasi menyimpan hasil komputasi untuk menghindari perhitungan berulang, meningkatkan efisiensi operasional, dan mengurangi kompleksitas logis.

MongoDB 4.0

Rilis ini ideal untuk kasus penggunaan yang memerlukan dukungan transaksi dan fitur NoSQL, terutama di industri keuangan.

  • Dukungan untuk transaksi lintas dokumen

    Sebagai database cloud NoSQL pertama yang mendukung transaksi lintas dokumen, MongoDB 4.0 menggabungkan kecepatan dan fleksibilitas model dokumen dengan jaminan ACID.

  • Migrasi data 40% lebih cepat

    Pembacaan dan penulisan konkuren memungkinkan node shard baru menyelesaikan migrasi data lebih cepat dan menangani beban kerja layanan yang terus berkembang.

  • Kinerja baca yang jauh lebih baik

    Dengan dukungan transaksi, node secondary tidak lagi memblokir permintaan baca selama sinkronisasi oplog. Selain itu, Alibaba Cloud mendukung penskalaan multi-node di semua edisi, secara substansial meningkatkan kapasitas baca.

MongoDB 3.4 (tidak lagi didukung)

Versi ini memberikan beberapa peningkatan kinerja dan keamanan dibandingkan MongoDB 3.2.

Catatan

MongoDB 3.2 telah dihentikan. Untuk informasi lebih lanjut, lihat [Pemberitahuan] Pada 4 Februari, ApsaraDB for MongoDB menghentikan versi 3.2 dan meluncurkan versi 4.2.

  • Sinkronisasi primary/secondary lebih cepat

    Semua indeks kini dibuat selama sinkronisasi data, berbeda dengan versi sebelumnya yang hanya membuat indeks _id. Node secondary terus-menerus membaca entri oplog baru untuk memastikan database lokalnya memiliki cukup penyimpanan untuk data sementara.

  • Penyeimbangan beban lebih efisien

    Di MongoDB 3.2 dan versi sebelumnya, node mongos menangani penyeimbangan beban untuk kluster sharded. Beberapa node mongos akan bersaing untuk kunci terdistribusi, dan node yang menang memindahkan chunk antar shard. Di MongoDB 3.4, tugas ini dipindahkan ke node primary dari set replika server konfigurasi, yang secara signifikan meningkatkan konkurensi dan efisiensi penyeimbangan beban.

  • Operasi agregasi yang lebih kaya

    Versi 3.4 menambahkan sejumlah besar operator agregasi untuk memberikan kemampuan analisis data yang lebih kuat. Sebagai contoh, bucket dapat dengan mudah mengklasifikasikan data, $graphLookup mendukung operasi hubungan yang lebih kompleks dibandingkan $lookup dari versi 3.2, dan $addFields memperkaya operasi dokumen, seperti menjumlahkan bidang tertentu dan menyimpan hasilnya sebagai bidang baru.

  • Dukungan untuk zona sharding

    Versi ini memperkenalkan zona untuk kluster sharded, menggantikan mekanisme sharding sadar tag sebelumnya. Fitur ini memungkinkan Anda menetapkan data tertentu ke satu atau beberapa shard yang ditentukan dan menyederhanakan penerapan kluster sharded di beberapa pusat data.

  • Dukungan untuk aturan pengurutan

    Sebelumnya, string dibandingkan byte per byte. Aturan pengurutan memungkinkan Anda menentukan aturan spesifik bahasa untuk perbandingan string, seperti aturan untuk huruf besar/kecil dan tanda diakritik. Hal ini memungkinkan perbandingan dan pengurutan case-insensitive berdasarkan locale tertentu.

  • Dukungan untuk tampilan read-only

    Anda dapat membuat koleksi virtual dari hasil kueri pada koleksi atau tampilan lain. Anda kemudian dapat menjalankan operasi baca pada tampilan ini seperti pada koleksi standar.