

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

# Properti indeks: tersembunyi
<a name="index-property-hidden"></a>

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
<a name="index-property-hidden-behavior"></a>

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
<a name="index-property-hidden-restrictions"></a>
+ Anda tidak dapat menyembunyikan `_id` indeks.
+ Anda tidak dapat menggunakan `cursor.hint()` untuk memaksa penggunaan indeks tersembunyi.
+ `$merge`gagal jika indeks unik yang diperlukan pada `on` bidang disembunyikan. Buat indeks terlihat sebelum dijalankan`$merge`.

## Contoh
<a name="index-property-hidden-examples"></a>

### Buat indeks tersembunyi
<a name="index-property-hidden-create"></a>

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 ada`true`.

### Sembunyikan indeks yang ada
<a name="index-property-hidden-hide"></a>

Gunakan `collMod` perintah untuk menyembunyikan indeks yang ada. Identifikasi indeks baik dengan `name` atau dengan itu`keyPattern`, dan setel `hidden` ke`true`.

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
<a name="index-property-hidden-unhide"></a>

Untuk membuat indeks tersembunyi terlihat lagi, gunakan `collMod` perintah dengan `hidden` set to`false`.

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

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