View a markdown version of this page

Properti indeks: tersembunyi - Amazon DocumentDB

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

Properti indeks: tersembunyi

Amazon DocumentDB mendukung properti hidden indeks yang dimulai dengan Amazon DocumentDB 8.0.1.

Indeks tersembunyi tidak terlihat oleh perencana kueri dan tidak dapat digunakan untuk mendukung kueri. Dengan menyembunyikan indeks dari perencana, Anda dapat mengevaluasi dampak potensial dari penurunan indeks tanpa benar-benar menjatuhkannya. Jika dampaknya negatif, Anda dapat menampilkan indeks alih-alih harus membuat ulang indeks yang turun.

Pro hidden perti ini didukung pada semua jenis indeks, termasuk bidang tunggal, majemuk, multikey, teks, geospasial, dan indeks vektor.

Perilaku

Selain disembunyikan dari perencana, indeks tersembunyi sepenuhnya dipelihara dan ditegakkan. Contoh:

  • Jika indeks tersembunyi adalah indeks unik, indeks masih menerapkan batasan uniknya ke dokumen.

  • Jika indeks tersembunyi adalah indeks TTL, indeks masih kedaluwarsa dokumen.

  • Indeks tersembunyi disertakan dalam listIndexes dan db.collection.getIndexes() hasil.

  • Indeks tersembunyi diperbarui pada operasi penulisan ke koleksi dan terus menghabiskan ruang disk dan memori. Akibatnya, mereka termasuk dalam operasi statistik seperti db.collection.stats() dan$indexStats.

  • Menyembunyikan indeks yang tidak disembunyikan, atau menampilkan indeks tersembunyi, mengatur ulang indeks tersebut. $indexStats Menyembunyikan indeks yang sudah disembunyikan, atau menampilkan indeks yang sudah tidak disembunyikan, tidak diatur ulang. $indexStats

Pembatasan

  • Anda tidak dapat menyembunyikan _id indeks.

  • Anda tidak dapat menggunakan cursor.hint() untuk memaksa penggunaan indeks tersembunyi.

  • $mergegagal jika indeks unik yang diperlukan pada on bidang disembunyikan. Buat indeks terlihat sebelum dijalankan$merge.

Contoh

Buat indeks tersembunyi

Untuk membuat indeks dalam keadaan tersembunyi, gunakan db.collection.createIndex() metode dan atur hidden opsi ke true dalam definisi indeks.

Misalnya, operasi berikut membuat indeks naik tersembunyi di productId bidang:

db.collection.createIndex( { "productId": 1 }, { "name": "productId_1", "hidden": true } )

Untuk memverifikasi, jalankan db.collection.getIndexes() atau listIndexes pada koleksi. Indeks tersembunyi termasuk "hidden": true dalam definisinya.

db.collection.getIndexes() [ { "v": 4, "key": { "_id": 1 }, "name": "_id_" }, { "v": 4, "key": { "productId": 1 }, "name": "productId_1", "hidden": true } ]

Opsi indeks hanya hidden dikembalikan jika nilainya adatrue.

Sembunyikan indeks yang ada

Gunakan collMod perintah untuk menyembunyikan indeks yang ada. Identifikasi indeks baik dengan name atau dengan itukeyPattern, dan setel hidden ketrue.

Contoh berikut menyembunyikan indeks berdasarkan nama.

db.runCommand({ collMod: "collection", index: { name: "productId_1", // Specify the index name hidden: true } })

Anda juga dapat mengidentifikasi indeks dengan pola kuncinya.

db.runCommand({ collMod: "collection", index: { keyPattern: { productId: 1 }, // Specify the index key specification document hidden: true } })

Menampilkan indeks yang ada

Untuk membuat indeks tersembunyi terlihat lagi, gunakan collMod perintah dengan hidden set tofalse.

db.runCommand({ collMod: "collection", index: { name: "productId_1", hidden: false } })

Karena indeks sepenuhnya dipertahankan saat disembunyikan, indeks segera tersedia untuk digunakan setelah tidak disembunyikan.