View a markdown version of this page

Propriété de l'indice : partiel FilterExpression - 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'indice : partiel FilterExpression

Types d'index pris en charge

Option 3.6 4.0 5.0 8.0 Cluster élastique
champ unique Non Non Oui Oui Non
compound Non Non Oui Oui Non
touches multiples Non Non Oui Oui Non
géospatial Non Non Non Non Non

Utilisez l'FilterExpression option partiel pour créer un index partiel qui inclut uniquement les documents répondant à une condition de filtre spécifiée. Cela vous permet de créer des index plus efficaces en indexant uniquement un sous-ensemble de documents d'une collection, au lieu d'indexer tous les documents, 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. Amazon DocumentDB utilisera l'index partiel dans les scénarios suivants :

  • Le prédicat de requête correspond exactement à l'expression du filtre d'index partiel.

  • Le résultat attendu du filtre de requête est un sous-ensemble logique du filtre partiel.

  • Un sous-prédicat de la requête peut être utilisé conjointement avec d'autres index.

Pour de plus amples informations, veuillez consulter Index partiel.

Exemples

Les exemples suivants montrent comment créer des index partiels 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') }

champ unique

Créez un index de champ unique partiel sur le fabricant pour les produits dont la couleur est gris sidéral :

db.collection.createIndex( { "manufacturer": 1 }, { "name": "manufacturer_space_gray", "partialFilterExpression": { "color": { $eq: "Space Gray" } } } )

Cet indice sera utilisé lors de la recherche de produits de couleur gris sidéral par fabricant :

db.collection.find({ "manufacturer": "The Manufacturer", "color": { $eq: "Space Gray" } })

composé

Créez un indice composé partiel sur le fabricant et la couleur pour les produits dont le matériau est en polycarbonate :

db.collection.createIndex( { "manufacturer": 1, "color": 1 }, { "name": "manufacturer_and_color_polycarbonate", "partialFilterExpression": { "material": { $eq: "Polycarbonate" } } } )

Cet indice sera utilisé pour trouver des produits en polycarbonate par fabricant et par couleur :

db.collection.find({ "manufacturer": "The Manufacturer", "color": "Space Gray", "material": { $eq: "Polycarbonate" } })

touches multiples

Créez un index multiclé partiel sur les étiquettes des produits dont le fabricant est The Manufacturer :

db.collection.createIndex( { "tags": 1 }, { "name": "tags_the_manufacturer", "partialFilterExpression": { "manufacturer": { $eq: "The Manufacturer" } } } )

Cet index sera utilisé pour rechercher des produits étiquetés avec une imprimante dont le fabricant est The Manufacturer :

db.collection.find({ "tags": "printer", "manufacturer": { $eq: "The Manufacturer" } })