翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
インデックスプロパティ: スパース
サポートされているインデックスタイプ
| オプション | 3.6 | 4.0 | 5.0 | 8.0 | Elastic クラスター |
|---|---|---|---|---|---|
| 単一フィールド | はい | はい | はい | はい | はい |
| compound | はい | はい | はい | はい | はい |
| マルチキー | はい | はい | はい | はい | はい |
スパースオプションを使用して、インデックス付きフィールド (複数可) がないドキュメントのインデックス作成をスキップし、インデックスサイズを減らし、メモリ内のスペースを節約します。インデックスサイズが小さいため、インデックスを使用するクエリの方が効率的です。クエリがスパースインデックスを利用するには、インデックス付きフィールドで $exists 句を使用する必要があります。$exists 句を省略した場合、Amazon DocumentDB はスパースインデックスを使用しません。
例
次の例は、次のサンプルドキュメントでスパースインデックスを作成する方法を示しています。
{ "productId": "PROD133726", "sku": "SKU24224", "name": "Basic Printer", "manufacturer": "The Manufacturer", "tags": [ "printer", "basic", "electronics", "business" ], "barcodes": [ "542364671", "886330670", "437445606" ], "reviews": [ { "review_date": ISODate('2024-01-19T21:37:10.585Z'), ... } ], "material": "Polycarbonate", "color": "Space Gray", "supplier": { "supplierId": "SUP4", "location": { "type": "Point", "coordinates": [ -71.0589, 42.3601 ] } }, "productEmbedding": [ -0.019320633663838058, 0.019672111388113596 ], "lastUpdated": ISODate('2025-10-20T21:37:10.585Z') }
レビュー、マテリアル、および色フィールドは、すべてのドキュメントに存在するわけではないことに注意してください。
単一フィールド
マテリアルフィールドにスパース単一フィールドインデックスを作成します。
db.collection.createIndex( { "material": 1 }, { "name": "material_sparse", "sparse": true } )
このインデックスは、マテリアルの値を持つすべての製品を検索するときに使用されます。
db.collection.find({ "material": { $exists: true } })
複合
マテリアルフィールドとカラーフィールドにスパース複合インデックスを作成します。
db.collection.createIndex( { "material": 1, "color": 1 }, { "name": "material_and_color_sparse", "sparse": true } )
このインデックスは、マテリアル値と色値を組み合わせたすべての製品を検索するときに使用されます。
db.collection.find({ "material": { $exists: true } }) db.collection.find({ "color": { $exists: true } }) db.collection.find({ $and: [ { "material": { $exists: true } }, { "color": { $exists:true } } ] }) db.collection.find({ $and: [ { "color": { $exists: true } }, { "material": { $exists:true } } ] })
マルチキー
Reviews 配列にスパースマルチキーインデックスを作成します。
db.collection.createIndex( { "reviews": 1 }, { "name": "reviews_sparse", "sparse": true } )
このインデックスは、レビュー配列を持つすべての製品を検索するときに使用されます。
db.collection.find({ "reviews": { $exists: true } })