View a markdown version of this page

Propriété de l'index : sparse - Amazon DocumentDB

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 } })