All Products
Search
Document Center

ApsaraDB for MongoDB:Ikhtisar fitur baru di MongoDB 7.0

Last Updated:Mar 29, 2026

MongoDB 7.0 mempromosikan sejumlah fitur pratinjau ke status General Availability (GA) serta memperkenalkan kemampuan baru dalam sharding, enkripsi, dan agregasi. Halaman ini mencakup sorotan utama bagi pengguna ApsaraDB for MongoDB.

Untuk changelog lengkap dari upstream, lihat Release Notes for MongoDB 7.0.

Apa yang baru sekilas

KategoriFitur atau perubahan
Fitur baruQueryable Encryption (GA)
Pemeriksaan konsistensi metadata shard (checkMetadataConsistency)
Analisis kunci shard (analyzeShardKey)
AutoMerger
ShardingrangeDeleterHighPriority; metrik resharding; pembaruan kebijakan balancer
KeamananKey Management Interoperability Protocol (KMIP) V1.0 dan V1.1; OpenSSL 3.0 dan OpenSSL FIPS
AgregasiOperator bitwise; $median; $percentile
Time seriesRelaksasi pembatasan DELETE; dukungan COMPACT
LainnyaIndeks wildcard majemuk; $changeStreamSplitLargeEvent; peningkatan performa Slot-Based Execution (SBE)

Queryable encryption

Queryable Encryption, yang sebelumnya berstatus pratinjau di MongoDB 6.0, kini tersedia secara umum (generally available) di MongoDB 7.0.

Untuk detail implementasi, lihat Queryable Encryption.

Pemeriksaan konsistensi metadata shard

Ketidakkonsistenan metadata di seluruh shard dapat menyebabkan kesalahan routing yang sulit didiagnosis setelah terjadi. Perintah checkMetadataConsistency, yang ditambahkan di MongoDB 7.0, memungkinkan Anda mendeteksi ketidakkonsistenan tersebut secara proaktif sebelum memengaruhi lalu lintas produksi.

Jalankan perintah ini pada tingkat database:

// Periksa konsistensi metadata untuk database saat ini
db.runCommand({
  checkMetadataConsistency: 1,
  checkIndexes: true
})

Atau gunakan helper mongosh untuk memeriksa pada cakupan berbeda:

// Periksa database saat ini
db.checkMetadataConsistency()

// Periksa koleksi tertentu
db.collection.checkMetadataConsistency()

// Periksa semua database dalam kluster sharded
sh.checkMetadataConsistency()

Sertakan pemeriksaan ini dalam jadwal operasi dan maintenance (O&M) rutin Anda untuk menangkap ketidakkonsistenan sedini mungkin. Untuk referensi lengkap perintah, lihat checkMetadataConsistency.

Analis kunci shard (analyzeShardKey)

Pemilihan kunci shard yang salah dapat menyebabkan hotspots, distribusi data tidak merata, dan penurunan performa kueri—masalah yang mahal untuk diperbaiki setelah sebuah koleksi di-shard. Perintah analyzeShardKey mengevaluasi kandidat kunci shard terhadap sampel kueri dunia nyata sehingga Anda dapat membuat keputusan yang tepat sebelum menerapkannya.

db.adminCommand({
  analyzeShardKey: "<db>.<koleksi>",
  key: <kunciShard>,
  keyCharacteristics: <bool>,
  readWriteDistribution: <bool>,
  sampleRate: <double>,
  sampleSize: <int>
})
ParameterDeskripsi
analyzeShardKeyNamespace koleksi yang akan dianalisis, dalam format <db>.<koleksi>.
keyKandidat kunci shard yang akan dievaluasi.
keyCharacteristicsJika true, melaporkan kardinalitas dan distribusi frekuensi kunci shard.
readWriteDistributionJika true, melaporkan bagaimana operasi baca dan tulis didistribusikan di seluruh shard.
sampleRateProporsi dokumen yang diambil sampelnya, sebagai nilai antara 0 dan 1.
sampleSizeJumlah dokumen yang diambil sampelnya.

Perintah ini tidak memblokir operasi baca atau tulis pada koleksi. Untuk meminimalkan dampak pada beban kerja produksi, gunakan dengan preferensi baca secondary atau secondaryPreferred. Pada kluster sharded, mongos secara otomatis mengatur preferensi baca ke secondaryPreferred.

Untuk mengonfigurasi pengambilan sampel kueri sebelum menjalankan analisis, lihat configureQueryAnalyzer. Untuk referensi lengkap perintah, lihat analyzeShardKey.

AutoMerger

Saat kluster sharded berkembang—melalui migrasi data, penghapusan rentang, dan penulisan berkelanjutan—jumlah chunk dapat tumbuh melebihi kebutuhan, menyebabkan distribusi data tidak merata dan memperlambat balancer. AutoMerger, yang diperkenalkan di MongoDB 7.0, mengatasi hal ini dengan secara otomatis menggabungkan chunk ketika distribusi data atau indeks tidak seimbang, jumlah chunk berlebihan, atau selama migrasi data.

AutoMerger diaktifkan secara default di MongoDB 7.0. Perintah configureCollectionBalancing, yang diperkenalkan di versi MongoDB sebelumnya untuk mengonfigurasi pengaturan balancer pada koleksi sharded, juga mendukung AutoMerger:

db.adminCommand({
  configureCollectionBalancing: "<db>.<koleksi>",
  chunkSize: <num>,
  defragmentCollection: <bool>,
  enableAutoMerger: <bool>
})

Untuk memicu secara manual penggabungan semua chunk yang dapat digabung pada shard tertentu, jalankan:

db.adminCommand({ mergeAllChunksOnShard: "db.coll", shard: "Shard0" })

Optimalisasi sharding

Selain AutoMerger, MongoDB 7.0 mencakup perubahan sharding berikut:

  • Parameter `rangeDeleterHighPriority`: Mengontrol apakah penghapusan dokumen yatim (orphan documents) memiliki prioritas lebih tinggi daripada operasi hapus bisnis. Nilai default-nya adalah false, artinya operasi bisnis memiliki prioritas lebih tinggi.

  • Dokumen `operationsBlockedByRefresh` dihapus: Dokumen operationsBlockedByRefresh telah dihapus dari serverStatus. Penghitung tersebut sebelumnya bertambah pada node mongos untuk setiap operasi yang menggunakan informasi routing koleksi, bahkan ketika tidak terjadi penyegaran cache katalog, sehingga metrik tersebut menyesatkan.

  • Metrik resharding: Metrik pemantauan baru untuk operasi resharding telah ditambahkan.

  • Perintah `addShard`: Opsi maxSize tidak lagi didukung.

  • Validasi ukuran chunk: Saat Anda menyesuaikan ukuran chunk dalam koleksi config.settings, MongoDB kini memvalidasi bahwa nilainya berada dalam rentang yang didukung, yaitu 1 hingga 1.024.

  • Pembaruan kebijakan balancer (dari MongoDB 6.0.3): Balancer kini mendistribusikan data berdasarkan volume data, bukan jumlah chunk. Partisi dilakukan berdasarkan rentang, bukan berdasarkan chunk, dan pemisahan otomatis hanya terjadi ketika data dimigrasikan antar shard.

Keamanan

  • Dukungan KMIP: Key Management Interoperability Protocol (KMIP) V1.0 dan V1.1 kini didukung untuk manajemen kunci eksternal.

  • OpenSSL: OpenSSL 3.0 dan OpenSSL FIPS kini didukung.

Agregasi

MongoDB 7.0 menambahkan enam operator agregasi baru.

Operator bitwise

Empat operator melakukan operasi aritmetika bitwise pada nilai int dan long:

OperatorDeskripsi
$bitAndBitwise AND
$bitNotBitwise NOT (invers bitwise)
$bitOrBitwise OR
$bitXorBitwise XOR

Operator persentil

Dua operator menghitung persentil statistik dari nilai-nilai yang dikelompokkan:

OperatorDeskripsi
$medianMengembalikan persentil ke-50 (median perkiraan).
$percentileMengembalikan persentil yang ditentukan.

Contoh — hitung median dan persentil ke-90 per kategori:

db.sales.aggregate([
  {
    $group: {
      _id: "$category",
      medianRevenue: { $median: { input: "$revenue", method: "approximate" } },
      p90Revenue: { $percentile: { input: "$revenue", p: [0.90], method: "approximate" } }
    }
  }
])

Koleksi time series

  • Relaksasi pembatasan DELETE: Perintah DELETE kini dapat digunakan pada koleksi time series tanpa sebagian besar pembatasan yang berlaku di versi sebelumnya. Satu-satunya pembatasan yang tersisa adalah bahwa DELETE tidak dapat digunakan dalam transaksi multi-dokumen.

  • Dukungan COMPACT: Perintah COMPACT kini berfungsi dengan koleksi time series.

Perubahan lainnya

  • Field log kueri lambat: Field baru, termasuk catalogCacheIndexLookupDurationMillis, telah ditambahkan ke entri log kueri lambat. Lihat Logging slow operations.

  • Konkurensi mesin penyimpanan otomatis: Konkurensi transaksi untuk mesin penyimpanan WiredTiger kini disesuaikan secara otomatis. Nilai default sebelum penyetelan otomatis adalah 128 tiket. Lihat Concurrent storage engine transactions (read and write tickets).

  • Metrik pengambilan sampel kueri dalam `currentOp`: Field yang terkait dengan pengambilan sampel kueri kini disertakan dalam output currentOp. Lihat currentOp metrics.

  • Indeks wildcard majemuk: MongoDB 7.0 mendukung indeks wildcard majemuk, yang menggabungkan field wildcard dengan satu atau lebih field standar. Lihat Compound wildcard indexes.

  • Operator `$changeStreamSplitLargeEvent`: Memecah event change stream yang melebihi batas dokumen BSON 16 MB menjadi beberapa event yang lebih kecil. Lihat Large change stream events.

  • Peningkatan mesin Slot-Based Execution (SBE): Mesin eksekusi kueri SBE telah dioptimalkan untuk performa kueri yang lebih baik.

  • Metrik migrasi chunk: Statistik sharding baru untuk migrasi chunk telah ditambahkan. Lihat New sharding statistics for chunk migrations.

  • Variabel sistem `USER_ROLES`: Mengembalikan peran yang ditetapkan untuk pengguna saat ini.

  • Parameter global baru: Parameter untuk analyzeShardKey, balancer, dan queryAnalyzers telah ditambahkan.

  • Perubahan output `serverStatus`: Field tambahan telah ditambahkan ke output serverStatus. Lihat serverStatus output change.