

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# インデックスプロパティ: hidden
<a name="index-property-hidden"></a>

Amazon DocumentDB は、Amazon DocumentDB 8.0.1 で始まる`hidden`インデックスプロパティをサポートしています。

非表示インデックスはクエリプランナーに表示されず、クエリのサポートには使用できません。プランナーからインデックスを非表示にすることで、実際にインデックスを削除することなく、インデックスを削除した場合の潜在的な影響を評価できます。影響が負の場合は、ドロップされたインデックスを再作成する代わりに、インデックスを非表示にすることができます。

`hidden` プロパティは、単一フィールド、複合、マルチキー、テキスト、地理空間、ベクトルインデックスなど、すべてのインデックスタイプでサポートされています。

## 動作
<a name="index-property-hidden-behavior"></a>

プランナーから非表示になるだけでなく、非表示インデックスは完全に維持され、適用されます。例えば、次のようになります。
+ 非表示のインデックスが一意のインデックスである場合も、インデックスはその一意の制約をドキュメントに適用します。
+ 非表示のインデックスが TTL インデックスの場合、インデックスは引き続きドキュメントを期限切れにします。
+ 非表示インデックスは `listIndexes`および `db.collection.getIndexes()`結果に含まれます。
+ 非表示インデックスは、コレクションへの書き込みオペレーションで更新され、引き続きディスク容量とメモリを消費します。その結果、 `db.collection.stats()`や などの統計オペレーションに含まれます`$indexStats`。
+ 非表示のインデックスを非表示にするか、非表示のインデックスを非表示にすると、 は をリセットします`$indexStats`。既に非表示のインデックスを非表示にしたり、既に非表示のインデックスを非表示にしたりしても、 はリセットされません`$indexStats`。

## 制限事項
<a name="index-property-hidden-restrictions"></a>
+ `_id` インデックスを非表示にすることはできません。
+ `cursor.hint()` を使用して非表示インデックスを強制的に使用することはできません。
+ `$merge` `on`フィールドで必要な一意のインデックスが非表示の場合、 は失敗します。を実行する前にインデックスを表示します`$merge`。

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

### 非表示インデックスを作成する
<a name="index-property-hidden-create"></a>

非表示状態のインデックスを作成するには、 `db.collection.createIndex()`メソッドを使用し、インデックス定義`true`で `hidden`オプションを に設定します。

たとえば、次のオペレーションでは、 `productId`フィールドに非表示の昇順インデックスを作成します。

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

検証するには、コレクション`listIndexes`で `db.collection.getIndexes()`または を実行します。非表示インデックスの定義`"hidden": true`には が含まれます。

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

インデックスオプション`hidden`は、値が の場合にのみ返されます`true`。

### 既存のインデックスを非表示にする
<a name="index-property-hidden-hide"></a>

`collMod` コマンドを使用して、既存のインデックスを非表示にします。インデックスをその `name`または で識別し`keyPattern`、 `hidden`を に設定します`true`。

次の例では、名前でインデックスを非表示にします。

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

キーパターンでインデックスを識別することもできます。

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

### 既存のインデックスの非表示を解除する
<a name="index-property-hidden-unhide"></a>

非表示のインデックスを再度表示するには、 を `hidden`に設定して `collMod` コマンドを使用します`false`。

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

インデックスは非表示のまま完全に維持されるため、非表示にするとすぐに使用できます。