All Products
Search
Document Center

ApsaraDB for MongoDB:Catatan mengenai peningkatan versi utama database MongoDB

Last Updated:Jun 05, 2026

ApsaraDB for MongoDB mendukung peningkatan versi utama database Anda. Sebelum melakukan peningkatan, tentukan versi utama tujuan yang dapat ditingkatkan oleh instans Anda berdasarkan arsitektur layanan dan versi saat ini, serta tinjau perubahan kompatibilitas antar versi utama.

Jalur peningkatan yang didukung

  • Anda dapat meningkatkan versi utama database di Konsol ApsaraDB for MongoDB. Namun, versi tujuan yang tersedia bervariasi tergantung pada arsitektur instans, tipe instans, dan versi saat ini. Rinciannya sebagai berikut:

    Architecture

    Instance type

    Current major version

    Available upgrade versions

    Standalone architecture

    General-purpose with cloud disk

    MongoDB 4.0

    No higher major version is available for upgrade.

    General-purpose with cloud disk

    MongoDB 3.4

    In-place upgrade is not supported.

    To upgrade the major version, you can create a new instance and use it to replace the original instance.

    Replica set architecture

    • General-purpose with cloud disk

    • Dedicated with cloud disk

    MongoDB 8.0

    MongoDB 8.3 (Submit a ticket to apply)

    MongoDB 7.0

    MongoDB 8.0

    MongoDB 6.0

    MongoDB 7.0

    MongoDB 5.0

    MongoDB 6.0

    MongoDB 4.4

    MongoDB 5.0

    When you upgrade an instance from v4.4 to v5.0, the default writeConcern changes from {w:1} to {w:majority}. This may cause a decrease in write performance and an increase in write latency. Confirm this impact is acceptable before you upgrade.

    • General-purpose with local disk

    • Dedicated with local disk

    • Dedicated Physical Server

    MongoDB 4.2

    In-place upgrade is not supported.

    To upgrade the major version, you can create a new instance and use it to replace the original instance.

    MongoDB 4.0

    MongoDB 4.2

    MongoDB 3.4

    • MongoDB 4.0

    • MongoDB 4.2

    MongoDB 3.2

    MongoDB 3.0

    Sharded cluster architecture

    Dedicated with cloud disk

    MongoDB 8.0

    MongoDB 8.3 (Submit a ticket to apply)

    MongoDB 7.0

    MongoDB 8.0

    MongoDB 6.0

    MongoDB 7.0

    MongoDB 5.0

    MongoDB 6.0

    MongoDB 4.4

    MongoDB 5.0

    When you upgrade an instance from v4.4 to v5.0, the default writeConcern changes from {w:1} to {w:majority}. This may cause a decrease in write performance and an increase in write latency. Confirm this impact is acceptable before you upgrade.

    • General-purpose with local disk

    • Dedicated with local disk

    • Dedicated Physical Server

    MongoDB 4.2

    In-place upgrade is not supported.

    To upgrade the major version, you can create a new instance and use it to replace the original instance.

    MongoDB 4.0

    MongoDB 4.2

    MongoDB 3.4

    • MongoDB 4.0

    • MongoDB 4.2

    MongoDB 3.2

    MongoDB 3.0

  • Jika Anda perlu meningkatkan versi utama melintasi arsitektur atau tipe penyimpanan yang berbeda, pertama-tama buat instans dengan versi utama target, lalu gunakan Data Transmission Service (DTS) untuk memigrasikan data dari sumber ke instans baru tersebut.

    Lihat topik-topik berikut untuk instruksi migrasi data:

Perubahan kompatibilitas antar versi utama

Perubahan kompatibilitas antar versi utama database adalah sebagai berikut:

Penting
  • Instans harus dalam status Running agar dapat ditingkatkan versi utama databasenya. Untuk instruksi selengkapnya, lihat Upgrade database version.

  • Menurunkan spesifikasi setelah peningkatan versi utama tidak didukung.

  • MongoDB 4.0 dan versi setelahnya kompatibel dengan fitur MongoDB 3.6. Untuk menggunakan fitur MongoDB 3.6, tingkatkan ke MongoDB 4.0 atau versi yang lebih baru.

  • Catatan kompatibilitas ini hanya mencakup perubahan pada kernel ApsaraDB for MongoDB, bukan perubahan pada fitur manajemen instans.

Major database version

Compatibility changes

MongoDB 8.3

  • Jika Anda membuat view atau validator koleksi menggunakan ekspresi, parameter, atau variabel yang diperkenalkan di MongoDB 8.3, view tersebut mungkin gagal atau objek tidak divalidasi atau dievaluasi dengan benar setelah downgrade.

  • MongoDB 8.3 memperkenalkan semantik validasi baru untuk menandai koleksi sebagai “validated.” Semantik ini tidak kompatibel dengan versi sebelum 8.3. Upaya downgrade akan gagal jika koleksi validated ada.

  • Mulai MongoDB 8.3, ketika dokumen yang dibuat oleh stage $facet melebihi batas 100 MB, MongoDB mengembalikan kode kesalahan 146, bukan 4031700 untuk kesalahan ExceededMemoryLimit. Jika aplikasi, driver, atau tool Anda secara eksplisit memeriksa kode 4031700, Anda perlu memperbarui kode Anda untuk mendeteksi kode kesalahan ExceededMemoryLimit yang baru.

  • Saat menurunkan versi dari MongoDB 8.3 ke versi sebelumnya, konfigurasi activeBalancerWindowDOW (day-of-week balancer window) menjadi tidak tersedia.

  • Perintah removeShard sudah tidak digunakan lagi. Gunakan perintah baru startShardDraining, stopShardDraining, shardDrainingStatus, dan commitShardRemoval untuk mengontrol penghapusan shard. Perintah-perintah ini mendukung jeda dan lanjut migrasi kapan saja.

  • Pada kluster sharded, operasi DDL dan applyOps sekarang harus dijalankan melalui mongos dan tidak dapat dieksekusi langsung pada node shard.

  • Nilai default 2dsphereVersion meningkat dari 3 menjadi 4. Untuk menurunkan versi kompatibilitas fitur (FCV) di bawah 8.3, hapus semua indeks 2dsphere versi 4 terlebih dahulu.

  • Mulai MongoDB 8.3 (dan juga 8.0.18, 7.0.29), indeks wildcard komposit menerapkan aturan validasi yang lebih ketat untuk spesifikasi wildcardProjection. Indeks yang sudah ada tetap berfungsi meskipun tidak memenuhi persyaratan baru, tetapi Anda tidak dapat membuat indeks baru yang melanggar aturan tersebut.

  • Untuk koleksi time series, refineCollectionShardKey sekarang mengharuskan kunci shard merujuk ke metadata logis dan field waktu, dan tidak lagi menerima format bucket dasar. Indeks tidak boleh diberi nama _id_. Nama timeField tidak boleh diawali dengan $.

  • Output serverStatus menghapus field service.

  • Menghapus koleksi sistem config.csrs.indexes.

Untuk informasi lebih lanjut tentang MongoDB 8.3, lihat Compatibility Changes in MongoDB 8.3.

MongoDB 8.0

  • Hindari penggunaan tcmallocAggressiveMemoryDecommit.

  • Parameter tcmallocReleaseRate memungkinkan Anda menentukan laju pelepasan memori. ApsaraDB for MongoDB mengatur nilai ini ke 10 MB/s secara default.

  • Ketika null digunakan sebagai kondisi kueri, MongoDB tidak lagi mencocokkan nilai undefined.

  • Hindari penggunaan filter indeks.

  • Untuk koleksi time series, hindari penggunaan timeField sebagai kunci sharding.

  • Hindari penggunaan perintah cleanupOrphaned.

  • Jangan menjalankan perintah compact secara konkuren pada koleksi yang sama.

  • Sebelum meningkatkan ke MongoDB 8.0, ganti nama atau hapus koleksi non-time-series apa pun yang bernama system.buckets.

Untuk informasi lebih lanjut tentang MongoDB 8.0, lihat Compatibility Changes in MongoDB 8.0.

MongoDB 7.0

  • Tidak ada masalah kompatibilitas saat meningkatkan ke MongoDB 7.0.

  • Untuk menurunkan versi dari MongoDB 7.0 ke versi utama sebelumnya, hapus terlebih dahulu fitur-fitur yang diperkenalkan di 7.0, seperti:

    • Hapus semua indeks kolom (columnar indexes).

    • Batalkan pendaftaran parameter kluster yang ditetapkan menggunakan perintah setClusterParameter. Untuk detailnya, lihat setClusterParameter.

    • Hapus semua koleksi yang dibuat dengan opsi encryptedFields.

    • Hapus semua indeks wildcard komposit (Compound wildcard indexes).

Untuk informasi lebih lanjut tentang MongoDB 7.0, lihat Compatibility Changes in MongoDB 7.0.

MongoDB 6.0

  • Jika pipeline agregasi menggunakan memori lebih dari 100 MB, MongoDB secara default menulis data ke file temporary di disk. Untuk mengubah perilaku ini, atur parameter global allowDiskUseByDefault ke false.

    Versi sebelum 6.0 mengharuskan Anda secara eksplisit menentukan { allowDiskUse: true } untuk menulis data ke file disk temporary.

  • Saat menggunakan dropIndexes dengan wildcard *, MongoDB tidak menghapus indeks _id atau indeks kunci shard. Untuk informasi lebih lanjut, lihat dropIndexes.

  • Mongo Shell tidak lagi didukung. Gunakan mongosh sebagai gantinya.

  • Operator seperti $explain, $hint, $max, dan $maxTimeMS tidak lagi didukung.

  • Ketika TTL index expireAfterSeconds diatur ke NaN, nilainya dianggap sebagai 0, yang dapat menyebabkan dokumen langsung kedaluwarsa.

  • Metode autentikasi SCRAM-SHA-1 tidak lagi didukung.

  • Perintah reIndex dan metode terkaitnya reIndex() tidak lagi didukung.

Untuk informasi lebih lanjut tentang MongoDB 6.0, lihat Compatibility Changes in MongoDB 6.0.

MongoDB 5.0

  • Tingkat Read Concern untuk node secondary berubah dari available menjadi local. Untuk informasi lebih lanjut, lihat Read Concern.

  • Write Concern default berubah dari 1 menjadi majority.

    Penting

    Perubahan ini dapat menurunkan performa write. Konfirmasi dampaknya sebelum melakukan peningkatan. Anda juga dapat menggunakan perintah setDefaultRWConcern untuk mengubah writeConcern default.

  • db.collection.ensureIndex() tidak lagi didukung. Gunakan db.collection.createIndex() sebagai gantinya.

  • Parameter untuk perintah saslStart dan saslContinue sekarang divalidasi secara ketat dan tidak kompatibel dengan mgo. saslContinue hanya memerlukan conversationId dan payload, tetapi mgo memberikan parameter tambahan mechanism. Untuk informasi lebih lanjut, lihat mgo.

  • Menghapus geoSearch.

Untuk informasi lebih lanjut tentang MongoDB 5.0, lihat Compatibility Changes in MongoDB 5.0.

MongoDB 4.4

  • compact tidak lagi mendukung opsi force. Untuk informasi lebih lanjut, lihat compact.

  • geoSearch tidak lagi didukung. Untuk informasi lebih lanjut, lihat geoSearch.

  • Indeks kini dapat dibuat secara simultan pada database primary dan secondary, sehingga mengurangi replikasi lag selama pembuatan indeks. Node secondary tetap mutakhir bahkan saat indeks sedang dibangun.

Untuk informasi lebih lanjut tentang MongoDB 4.4, lihat Compatibility Changes in MongoDB 4.4.

MongoDB 4.2

  • geoNear tidak lagi didukung. Gunakan $geoNear (aggregation) sebagai gantinya. Untuk informasi lebih lanjut, lihat $geoNear (aggregation).

  • repairDatabase tidak lagi didukung.

  • cloneCollection telah dihapus dan tidak lagi didukung. Gunakan mongoexport dan mongoimport sebagai gantinya. Untuk informasi lebih lanjut, lihat mongoexport dan mongoimport.

  • afterClusterTime tidak lagi didukung. Untuk informasi lebih lanjut, lihat afterClusterTime.

  • Driver open source MongoDB 4.2+ mengaktifkan Retryable Writes secara default. Untuk informasi lebih lanjut, lihat Retryable Writes.

  • Menghapus group, copydb, dan clone.

Untuk informasi lebih lanjut tentang MongoDB 4.2, lihat MongoDB 4.2 compatibility update notes.

MongoDB 4.0

  • reIndex memperoleh global write lock hingga proses pembangunan ulang indeks selesai. Untuk informasi lebih lanjut, lihat reIndex.

  • copydb dan clone tidak lagi didukung.

Untuk informasi lebih lanjut tentang MongoDB 4.0, lihat MongoDB 4.0 compatibility update notes.

MongoDB 3.6

  • aggregate tidak lagi mengembalikan satu dokumen. Fungsi ini mengembalikan cursor. Anda dapat menggunakan cursor untuk menentukan ukuran batch. Untuk informasi lebih lanjut tentang aggregate, lihat aggregate.

  • $type: "array" kini mendeteksi dokumen bertipe array secara langsung, bukan hanya array bersarang. Untuk informasi lebih lanjut tentang $type, lihat $type.

  • Perilaku sorting array berubah sebagai berikut:

    • find menambahkan opsi sort untuk memberikan hasil sort yang lebih rinci. Untuk informasi lebih lanjut tentang find, lihat find.

    • Stage $sort dalam $sort(aggregation) memiliki batas memori 100 MB. Untuk informasi lebih lanjut, lihat $sort (aggregation).

  • Saat memperbarui beberapa field dalam satu operasi, field baru ditambahkan dalam urutan leksikografis. Untuk informasi lebih lanjut, lihat $set.

  • Opsi kueri snapshot tidak lagi didukung.

Untuk informasi lebih lanjut tentang MongoDB 3.6, lihat MongoDB 3.6 compatibility update notes.

MongoDB 3.4

  • group tidak lagi didukung. Gunakan db.collection.aggregate() atau db.collection.mapReduce() sebagai gantinya. Untuk informasi lebih lanjut, lihat db.collection.aggregate() dan db.collection.mapReduce().

  • Gunakan ekspresi $in untuk mencocokkan operasi update dengan + upsert: true.

    Contoh:

    db.c.drop()
    db.c.update({a:{$in:[1]}},{$addToSet:{a:2}},{upsert:true}) // Gagal di MongoDB 3.4, tetapi berhasil di versi sebelumnya.
    db.c.update({a:{$elemMatch:{$in:[2]}}},{$addToSet:{a:2}},{upsert:true}) // Berhasil di MongoDB 3.4.

    Untuk informasi lebih lanjut tentang update, lihat update.

Untuk informasi lebih lanjut tentang MongoDB 3.4, lihat MongoDB 3.4 compatibility changes.

API terkait

Interface

Description

UpgradeDBInstanceEngineVersion

Upgrades the major database version of an ApsaraDB for MongoDB instance.