Kompatibilitas Amazon DocumentDB dengan MongoDB - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kompatibilitas Amazon DocumentDB dengan MongoDB

Amazon DocumentDB mendukung kompatibilitas MongoDB termasuk MongoDB 4.0 dan MongoDB 5.0. Kompatibilitas MongoDB berarti bahwa sebagian besar aplikasi, driver, dan alat yang sudah Anda gunakan hari ini dengan database MongoDB Anda dapat digunakan dengan Amazon DocumentDB dengan sedikit atau tanpa perubahan. Bagian ini menjelaskan semua yang perlu Anda ketahui tentang kompatibilitas Amazon DocumentDB dengan MongoDB termasuk kemampuan dan fitur baru, memulai, jalur migrasi, dan perbedaan fungsional.

Kompatibilitas MongoDB 5.0

Apa yang baru di Amazon DocumentDB 5.0

Amazon DocumentDB 5.0 memperkenalkan fitur dan kemampuan baru yang mencakup batas penyimpanan dan enkripsi tingkat bidang sisi klien. Ringkasan di bawah ini memperkenalkan beberapa fitur utama yang diperkenalkan di Amazon DocumentDB 5.0. Untuk melihat daftar lengkap kemampuan baru, lihat Catatan rilis.

  • Peningkatan batas penyimpanan menjadi 128 TiB untuk semua cluster Amazon DocumentDB berbasis instans dan cluster elastis berbasis shard.

  • Memperkenalkan Amazon DocumentDB 5.0 Engine Versi 3.0.775)

    • Dukungan untuk driver MongoDB 5.0 API

    • Support untuk Client-side Field Level Encryption (FLE). Anda sekarang dapat mengenkripsi bidang di sisi klien sebelum menulis data ke cluster Amazon DocumentDB. Untuk informasi selengkapnya, lihat Enkripsi tingkat bidang sisi klien.

    • Operator agregasi baru:$dateAdd, $dateSubtract

    • Mendukung indeks dengan $elemMatch operator. Akibatnya, kueri yang memiliki $elemMatch akan menghasilkan pemindaian indeks.

Amazon DocumentDB tidak mendukung setiap fitur MongoDB 5.0. Ketika kami membangun Amazon DocumentDB 5.0, kami bekerja mundur dari fitur dan kemampuan yang diminta pelanggan kami untuk membangun paling banyak. Kami akan terus menambahkan kemampuan MongoDB 5.0 tambahan berdasarkan apa yang diminta pelanggan untuk kami bangun. Untuk daftar terbaru yang didukung APIs, silakan lihat APIsMongoDB, operasi, dan tipe data yang didukung di Amazon DocumentDB.

Memulai Amazon DocumentDB 5.0

Untuk memulai Amazon DocumentDB 5.0, silakan lihat Panduan Memulai. Anda dapat membuat klaster Amazon DocumentDB 5.0 baru menggunakan atau SDK AWS Management Console AWS CLI, AWS , atau. AWS CloudFormation Saat menghubungkan ke Amazon DocumentDB, Anda harus menggunakan driver MongoDB atau utilitas yang kompatibel dengan MongoDB 5.0 atau lebih tinggi.

catatan

Saat menggunakan AWS SDK,, atau AWS CLI AWS CloudFormation, versi mesin akan default ke 5.0.0. Anda harus secara eksplisit menentukan parameter engineVersion = 4.0.0 untuk membuat cluster Amazon DocumentDB 4.0 baru engineVersion = 3.6.0 atau untuk membuat cluster Amazon DocumentDB 3.6 baru. Untuk klaster Amazon DocumentDB tertentu, Anda dapat menentukan versi cluster menggunakan to describe-db-clusters call atau menggunakan AWS CLI konsol manajemen Amazon DocumentDB untuk melihat nomor versi engine untuk klaster tertentu.

Amazon DocumentDB 5.0 mendukung prosesor EC2 Amazon Graviton2 r6g seperti t4.medium dan jenis instans untuk cluster Anda dan tersedia di semua wilayah yang didukung. Untuk informasi selengkapnya tentang harga, lihat Harga Amazon DocumentDB (dengan kompatibilitas MongoDB).

Tingkatkan atau migrasi ke Amazon DocumentDB 5.0

Anda dapat bermigrasi dari MongoDB 3.6 atau MongoDB 4.0 ke Amazon DocumentDB 5.0 menggunakan atau utilitas seperti,,, dan. AWS DMSmongodumpmongorestoremongoimportmongoexport Untuk petunjuk tentang cara bermigrasi, lihat Memutakhirkan cluster Amazon DocumentDB Anda menggunakan AWS Database Migration Service.

Perbedaan fungsional

Perbedaan fungsional antara Amazon DocumentDB 4.0 dan 5.0

Dengan dirilisnya Amazon DocumentDB 5.0, ada perbedaan fungsional antara Amazon DocumentDB 4.0 dan Amazon DocumentDB 5.0:

  • Peran bawaan cadangan sekarang mendukungserverStatus. Tindakan - Pengembang dan aplikasi dengan peran cadangan dapat mengumpulkan statistik tentang keadaan cluster Amazon DocumentDB.

  • SecondaryDelaySecsBidang menggantikan slaveDelay replSetGetConfig output.

  • helloPerintah menggantikan isMaster - hello mengembalikan dokumen yang menjelaskan peran cluster Amazon DocumentDB.

  • Amazon DocumentDB 5.0 sekarang mendukung pemindaian indeks dengan operator di tingkat $elemMatch bersarang pertama. Pemindaian indeks didukung ketika filter kueri hanya memiliki satu tingkat $elemMatch filter tetapi tidak didukung jika $elemMatch kueri bersarang disertakan.

    Misalnya, di Amazon DocumentDB 5.0, jika Anda menyertakan $elemMatch operator di level bersarang, itu tidak akan mengembalikan nilai seperti yang terjadi di Amazon DocumentDB 4.0:

    db.foo.insert( [ {a: {b: 5}}, {a: {b: [5]}}, {a: {b: [3, 7]}}, {a: [{b: 5}]}, {a: [{b: 3}, {b: 7}]}, {a: [{b: [5]}]}, {a: [{b: [3, 7]}]}, {a: [[{b: 5}]]}, {a: [[{b: 3}, {b: 7}]]}, {a: [[{b: [5]}]]}, {a: [[{b: [3, 7]}]]} ]); // DocumentDB 5.0 > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } // DocumentDB 4.0 > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } { "a" : [ [ { "b" : [ 5 ] } ] ] }
  • Proyeksi “$” di Amazon DocumentDB 4.0 mengembalikan semua dokumen dengan semua bidang. Dengan Amazon DocumentDB 5.0, find perintah dengan proyeksi “$” mengembalikan dokumen yang cocok dengan parameter kueri yang hanya berisi bidang yang cocok dengan proyeksi “$”.

  • Di Amazon DocumentDB 5.0, find perintah $regex dengan $options dan parameter kueri mengembalikan kesalahan: “Tidak dapat mengatur opsi di $regex keduanya dan”. $options

  • Dengan Amazon DocumentDB 5.0$indexOfCP, sekarang mengembalikan “-1" ketika:

    • substring tidak ditemukan dalam ekspresi string, atau

    • awal adalah angka yang lebih besar dari akhir, atau

    • start adalah angka yang lebih besar dari panjang byte string.

  • Di Amazon DocumentDB 4.0$indexOfCP, mengembalikan “0" ketika posisi awal adalah angka yang lebih besar dari akhir atau panjang byte string.

  • Dengan Amazon DocumentDB 5.0, operasi proyeksi _id fields di, {"_id.nestedField" : 1} misalnya, mengembalikan dokumen yang hanya menyertakan bidang yang diproyeksikan. Sedangkan di Amazon DocumentDB 4.0, perintah proyeksi bidang bersarang tidak memfilter dokumen apa pun.

Kompatibilitas MongoDB 4.0

Fitur Amazon DocumentDB 4.0

Amazon DocumentDB 4.0 memperkenalkan banyak fitur dan kemampuan baru yang mencakup transaksi ACID dan peningkatan untuk mengubah aliran. Ringkasan di bawah ini menunjukkan beberapa fitur utama yang diperkenalkan di Amazon DocumentDB 4.0. Untuk melihat daftar lengkap kemampuan, lihatCatatan rilis.

  • Transaksi ACID: Amazon DocumentDB sekarang mendukung kemampuan untuk melakukan transaksi di beberapa dokumen, pernyataan, koleksi, dan basis data. Transaksi menyederhanakan pengembangan aplikasi dengan memungkinkan Anda untuk melakukan operasi atomik, konsisten, terisolasi, dan tahan lama (ACID) di satu atau lebih dokumen dalam klaster Amazon DocumentDB. Untuk informasi selengkapnya, lihat Transaksi di Amazon DocumentDB.

  • Aliran perubahan: Anda sekarang memiliki kemampuan untuk membuka aliran perubahan di tingkat klaster (client.watch() atau mongo.watch()) dan basis data (db.watch()), Anda dapat menentukan startAtOperationTime untuk membuka kursor aliran perubahan, dan terakhir Anda sekarang dapat memperpanjang periode retensi aliran perubahan menjadi 7 hari (sebelumnya 24 jam). Untuk informasi selengkapnya, lihat Menggunakan aliran perubahan dengan Amazon DocumentDB.

  • AWS Database Migration Service(AWS DMS): Anda sekarang dapat menggunakan AWS DMS untuk memigrasikan beban kerja MongoDB 4.0 Anda ke Amazon DocumentDB. AWS DMS sekarang mendukung sumber MongoDB 4.0, target Amazon DocumentDB 4.0, dan sumber Amazon DocumentDB 3.6 untuk melakukan peningkatan antara Amazon DocumentDB 3.6 dan 4.0. Untuk informasi selengkapnya, lihat Dokumentasi AWS DMS .

  • Performa dan pengindeksan: Anda sekarang dapat memanfaatkan indeks dengan $lookup, menemukan kueri dengan proyeksi yang berisi satu bidang atau satu bidang dan bidang _id dapat dilayani langsung dari indeks dan tanpa perlu membaca dari koleksi (kueri tercakup), kemampuan untuk hint() dengan findAndModify, optimasi performa untuk $addToSet, dan peningkatan untuk mengurangi ukuran indeks secara keseluruhan. Untuk informasi selengkapnya, lihat Catatan rilis.

  • Operator: Amazon DocumentDB 4.0 sekarang mendukung sejumlah operator agregasi baru: $ifNull, $replaceRoot, $setIsSubset, $setIntersection, $setUnion, $setEquals. Anda dapat melihat semua APIs MongoDB, Operasi, dan Jenis Data yang kami dukung. APIsMongoDB, operasi, dan tipe data yang didukung di Amazon DocumentDB

  • Kontrol akses berbasis peran (RBAC): Dengan perintah ListCollection dan ListDatabase Anda sekarang dapat secara opsional menggunakan parameter authorizedCollections dan authorizedDatabases untuk memungkinkan pengguna membuat daftar koleksi dan basis data yang memiliki izin untuk mereka akses tanpa memerlukan peran listCollections dan listDatabase, masing-masing. Anda juga memiliki kemampuan untuk menghilangkan kursor Anda sendiri tanpa memerlukan peran KillCursor.

Amazon DocumentDB tidak mendukung setiap fitur MongoDB 4.0. Ketika kami membangun Amazon DocumentDB 4.0, kami bekerja ke belakang dari fitur dan kemampuan yang paling banyak diminta pelanggan kami untuk kami bangun. Kami akan terus menambahkan kemampuan MongoDB 4.0 tambahan berdasarkan apa yang diminta pelanggan untuk kami bangun. Misalnya, Amazon DocumentDB 4.0 saat ini tidak mendukung operator konversi tipe atau operator string yang diperkenalkan di MongoDB 4.0. Untuk daftar terbaru yang didukung APIs, silakan lihat APIsMongoDB, operasi, dan tipe data yang didukung di Amazon DocumentDB.

Memulai Amazon DocumentDB 4.0

Untuk memulai dengan Amazon DocumentDB 4.0, silakan lihat Panduan Memulai. Anda dapat membuat klaster Amazon DocumentDB 4.0 baru menggunakan atau SDK AWS Management Console AWS CLI, AWS , atau. AWS CloudFormation Saat menghubungkan ke Amazon DocumentDB, Anda harus menggunakan driver atau utilitas MongoDB yang kompatibel dengan MongoDB 4.0 atau yang lebih tinggi.

catatan

Saat menggunakan AWS SDK,, atau AWS CLI AWS CloudFormation, versi mesin akan default ke 5.0.0. Anda harus secara eksplisit menentukan parameter engineVersion = 4.0.0 untuk membuat cluster Amazon DocumentDB 4.0 baru engineVersion = 3.6.0 atau untuk membuat cluster Amazon DocumentDB 3.6 baru. Untuk klaster Amazon DocumentDB tertentu, Anda dapat menentukan versi cluster menggunakan to describe-db-clusters call atau menggunakan AWS CLI konsol manajemen Amazon DocumentDB untuk melihat nomor versi engine untuk klaster tertentu.

Amazon DocumentDB 4.0 r5 mendukungr6g,,t3.medium, t4g.medium dan jenis instans untuk cluster Anda dan tersedia di semua wilayah yang didukung. Tidak ada biaya tambahan untuk menggunakan Amazon DocumentDB 4.0. Untuk informasi selengkapnya tentang harga, lihat Harga Amazon DocumentDB (dengan kompatibilitas MongoDB).

Tingkatkan atau migrasi ke Amazon DocumentDB 4.0

Anda dapat bermigrasi dari MongoDB 3.6 atau MongoDB 4.0 ke Amazon DocumentDB 4.0 memanfaatkan AWS DMS atau utilitas seperti mongodump, mongorestore, mongoimport, dan mongoexport. Demikian pula, Anda dapat menggunakan alat yang sama untuk meningkatkan dari Amazon DocumentDB 3.6 ke Amazon DocumentDB 4.0. Untuk petunjuk tentang cara bermigrasi, lihat Memutakhirkan cluster Amazon DocumentDB Anda menggunakan AWS Database Migration Service.

Perbedaan fungsional

Perbedaan fungsional antara Amazon DocumentDB 3.6 dan 4.0

Dengan dirilisnya Amazon DocumentDB 4.0, ada perbedaan fungsional antara Amazon DocumentDB 3.6 dan Amazon DocumentDB 4.0:

  • Proyeksi untuk dokumen bersarang: Amazon DocumentDB 3.6 menganggap bidang pertama dalam dokumen bersarang ketika menerapkan proyeksi. Namun, Amazon DocumentDB 4.0 akan mengurai sub dokumen dan juga menerapkan proyeksi untuk setiap sub dokumen. Misalnya: jika proyeksinya adalah "a.b.c": 1, maka perilaku di kedua versi itu identik. Namun, jika proyeksinya adalah {a:{b:{c:1}}} maka Amazon DocumentDB 3.6 hanya akan menerapkan proyeksi ke 'a' dan bukan 'b' atau 'c'.

  • Perilaku untuk minKey, maxKey: Di Amazon DocumentDB 4.0, perilaku untuk {x:{$gt:MaxKey}} tidak mengembalikan apa-apa, dan untuk {x:{$lt:MaxKey}} mengembalikan segalanya.

  • Perbedaan perbandingan dokumen: Membandingkan nilai-nilai numerik dari berbagai jenis (ganda, int, panjang) di sub dokumen (misalnya, b dalam {"_id" :1, "a" :{"b":1}}) sekarang menyediakan output yang konsisten di seluruh tipe data numerik dan untuk setiap tingkat dokumen.

Perbedaan fungsional antara Amazon DocumentDB 4.0 dan MongoDB 4.0

Di bawah ini adalah perbedaan fungsional antara Amazon DocumentDB 4.0 dan MongoDB 4.0.

  • Pencarian dengan kunci kosong di jalur: Ketika koleksi berisi dokumen dengan kunci kosong di dalam array (misalnya {"x" : [ { "" : 10 }, { "b" : 20 } ]}), dan ketika kunci yang digunakan dalam kueri berakhir dalam string kosong (misalnya x.), maka Amazon DocumentDB akan mengembalikan dokumen itu karena melintasi semua dokumen dalam array sedangkan MongoDB tidak akan mengembalikan dokumen itu.

  • $setOnInsert bersama dengan $ di jalur: Operator bidang $setOnInsert tidak akan bekerja dalam kombinasi dengan $ di jalur di Amazon DocumentDB, yang juga konsisten dengan MongoDB 4.0.