Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Propriété de l'index : sparse
Types d'index pris en charge
| Option | 3.6 | 4.0 | 5.0 | 8.0 | Cluster élastique |
|---|---|---|---|---|---|
| champ unique | Oui | Oui | Oui | Oui | Oui |
| compound | Oui | Oui | Oui | Oui | Oui |
| touches multiples | Oui | Oui | Oui | Oui | Oui |
Utilisez l'option sparse pour ignorer l'indexation des documents dont le ou les champs indexés sont absents, ce qui permet de réduire la taille de l'index et d'économiser de l'espace en mémoire. La taille de l'index étant plus petite, les requêtes qui l'utilisent sont plus efficaces. Pour qu'une requête utilise un index fragmenté, vous devez utiliser la clause $exists sur les champs indexés. Si vous omettez la clause $exists, Amazon DocumentDB n'utilisera pas l'index fragmenté.
Exemples
Les exemples suivants montrent comment créer des index fragmentés sur l'exemple de document suivant :
{ "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') }
Notez que les champs de commentaires, de matériau et de couleur n'existent pas dans tous les documents.
champ unique
Créez un index de champ unique clairsemé sur le champ de matériau :
db.collection.createIndex( { "material": 1 }, { "name": "material_sparse", "sparse": true } )
Cet indice sera utilisé pour trouver tous les produits ayant une valeur matérielle :
db.collection.find({ "material": { $exists: true } })
composé
Créez un index composé clairsemé sur les champs de matière et de couleur :
db.collection.createIndex( { "material": 1, "color": 1 }, { "name": "material_and_color_sparse", "sparse": true } )
Cet indice sera utilisé pour rechercher tous les produits présentant une combinaison quelconque de valeurs de matériau et de couleur :
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 } } ] })
touches multiples
Créez un index multiclé fragmenté dans le tableau des avis :
db.collection.createIndex( { "reviews": 1 }, { "name": "reviews_sparse", "sparse": true } )
Cet index sera utilisé pour trouver tous les produits qui ont un tableau d'avis :
db.collection.find({ "reviews": { $exists: true } })