全部产品
Search
文档中心

ApsaraDB for MongoDB:Fitur baru MongoDB 7.0

更新时间:Jun 27, 2025

Topik ini menjelaskan fitur baru dan optimalisasi dalam MongoDB 7.0.

Pratinjau cepat

ApsaraDB for MongoDB

Untuk informasi lebih lanjut tentang fitur lainnya dan optimalisasi MongoDB 7.0, lihat Catatan Rilis untuk MongoDB 7.0.

Enkripsi yang dapat di-query

Pada MongoDB 6.0, fitur enkripsi yang dapat di-query berada dalam versi pratinjau. Pada MongoDB 7.0, fitur ini tersedia secara umum. Untuk informasi lebih lanjut, lihat Queryable Encryption.

Pemeriksaan konsistensi metadata shard

Perintah checkMetadataConsistency ditambahkan pada MongoDB 7.0 untuk memeriksa inkonsistensi metadata di seluruh shard yang berbeda. Contoh:

Contoh 1:

// Perintah
db.runCommand( {
   checkMetadataConsistency: 1,
   checkIndexes: true
} )

Contoh 2:

//mongosh
db.checkMetadataConsistency()
db.collection.checkMetadataConsistency()
sh.checkMetadataConsistency() 

Anda dapat menyertakan item pemeriksaan ini dalam O&M harian untuk mengidentifikasi potensi inkonsistensi sejak dini. Untuk informasi lebih lanjut, lihat checkMetadataConsistency.

Query sampel dan analisis kunci shard (analyzeShardKey)

Anda dapat menganalisis apakah kunci shard dari koleksi sudah tepat berdasarkan hasil query sampel. Hal ini membantu merancang skema dan kunci shard untuk koleksi dengan efisien serta membuat keputusan yang lebih tepat terkait penggunaan arsitektur sharding. Sintaks perintah analyzeShardKey:

db.adminCommand(
   {
     analyzeShardKey: <string>,
     key: <shardKey>,
     keyCharacteristics: <bool>,
     readWriteDistribution: <bool>,
     sampleRate: <double>,
     sampleSize: <int>
   }
 )
Catatan

Perintah ini tidak memblokir operasi baca dan tulis pada koleksi. Namun, untuk meminimalkan dampak pada bisnis Anda, kami sarankan menggunakan perintah ini bersamaan dengan preferensi baca secondary atau secondaryPreferred. Pada kluster sharded, mongos secara otomatis menetapkan preferensi baca menjadi secondaryPreferred.

Untuk informasi lebih lanjut, lihat analyShardKey dan configureQueryAnalyzer.

AutoMerger

MongoDB 7.0 memperkenalkan fitur baru bernama AutoMerger untuk balancer. Ketika data atau indeks didistribusikan secara tidak merata, shard berlebihan ada, atau data dimigrasikan, AutoMerger menggabungkan chunk untuk menyeimbangkan distribusi data dan meningkatkan kinerja database. Secara default, AutoMerger diaktifkan di MongoDB 7.0. Anda juga dapat mengonfigurasi jendela aktif untuk balancer untuk mengaktifkan AutoMerger.

Perintah configureCollectionBalancing yang diperkenalkan di versi MongoDB sebelumnya untuk mengonfigurasi pengaturan balancer untuk koleksi sharded juga mendukung AutoMerger.

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

Anda juga dapat menjalankan perintah mergeAllChunksOnShard untuk menggabungkan semua chunk atau rentang yang dapat digabungkan dalam sebuah shard.

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

Sharding

Selain AutoMerger, MongoDB 7.0 memperkenalkan optimalisasi berikut:

  • Parameter rangeDeleterHighPriority dapat digunakan untuk menentukan apakah penghapusan dokumen yatim memiliki prioritas tinggi. Secara default, parameter ini disetel ke false, yang menunjukkan bahwa MongoDB memprioritaskan operasi penghapusan terkait bisnis dibandingkan penghapusan dokumen yatim.

  • MongoDB 7.0 menghapus dokumen operationsBlockedByRefresh yang berisi statistik tentang operasi yang diblokir oleh pembaruan cache katalog. Ini karena penghitung operationsBlockedByRefresh bertambah pada node mongos untuk setiap operasi yang menggunakan informasi routing koleksi, meskipun operasi tersebut tidak diblokir oleh aktivitas pembaruan katalog.

  • Metrik pemantauan terkait resharding ditambahkan.

  • Opsi maxSize tidak lagi didukung untuk perintah addShard.

  • Ketika ukuran chunk dari koleksi config.settings disesuaikan, validasi dilakukan untuk memastikan nilai baru berada dalam rentang yang wajar antara 1 hingga 1.024.

  • Mulai dari MongoDB 6.0.3, beberapa penyesuaian dilakukan pada kebijakan balancer.

    • Balancer mendistribusikan data secara merata berdasarkan perbedaan volume data daripada jumlah chunk antar shard.

    • Pembagian dilakukan berdasarkan rentang alih-alih berdasarkan chunk.

    • Pemisahan otomatis hanya berlaku ketika data dimigrasikan di seluruh shard.

Keamanan

  • Protokol Interoperabilitas Manajemen Kunci (KMIP) V1.0 dan V1.1 didukung.

  • OpenSSL 3.0 dan OpenSSL FIPS didukung.

Agregasi

Operator berikut ditambahkan untuk melakukan perhitungan bit dan mendukung persentil.

Operator

Deskripsi

$bitAnd

Mengembalikan hasil operasi AND bitwise pada nilai numerik tipe INT atau LONG.

$bitNot

Mengembalikan hasil operasi inversi bitwise pada nilai numerik tipe INT atau LONG.

$bitOr

Mengembalikan hasil operasi OR bitwise pada nilai numerik tipe INT atau LONG.

$bitXor

Mengembalikan hasil operasi XOR bitwise pada nilai numerik tipe INT atau LONG.

$median

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

$percentile

Mengembalikan persentil yang ditentukan.

Koleksi time series

  • Pembatasan yang diberlakukan di versi sebelumnya pada penggunaan perintah DELETE untuk koleksi time-series dihapus. Satu-satunya pembatasan pada perintah DELETE saat ini adalah bahwa perintah tersebut tidak dapat digunakan dalam transaksi multi-dokumen.

  • Koleksi time-series didukung untuk perintah COMPACT.

Lainnya

  • Bidang seperti catalogCacheIndexLookupDurationMillis ditambahkan ke log query lambat. Untuk informasi lebih lanjut, lihat Logging Slow Operations.

  • Konkurensi transaksi mesin penyimpanan dapat disesuaikan secara dinamis. Konkurensi default sebelum penyesuaian adalah 128. Mulai dari MongoDB 7.0, konkurensi transaksi disesuaikan secara otomatis. Untuk informasi lebih lanjut, lihat Concurrent Storage Engine Transactions (Read and Write Tickets).

  • Bidang terkait sampling query ditambahkan ke perintah currentOp. Untuk informasi lebih lanjut, lihat currentOp Metrics.

  • Indeks wildcard komposit didukung. Untuk informasi lebih lanjut, lihat Compound Wildcard Indexes.

  • Operator $changeStreamSplitLargeEvent ditambahkan untuk memungkinkan Anda membagi peristiwa besar yang melebihi ukuran 16 MB. Untuk informasi lebih lanjut, lihat Large Change Stream Events.

  • Kinerja mesin eksekusi query berbasis slot dioptimalkan.

  • Metrik terkait migrasi chunk ditambahkan. Untuk informasi lebih lanjut, lihat New Sharding Statistics for Chunk Migrations.

  • Variabel sistem USER_ROLES dapat digunakan untuk mendapatkan peran pengguna saat ini.

  • Parameter global terkait analyzeShardKey, balancer, dan queryAnalyzers ditambahkan.

  • Lebih banyak bidang ditambahkan ke hasil yang dikembalikan untuk serverStatus. Untuk informasi lebih lanjut, lihat serverStatus Output Change.