View a markdown version of this page

Propriété d'index : partielle 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é d'index : partielle 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
multiclé Non Non Oui Oui Non
géospatial Non Non Non Non Non

Utilisez l'FilterExpression option partial 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, plutôt que d'indexer tous les documents, en réduisant la taille de l'index et en économisant 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 le document d'exemple 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 partiel à champ unique 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é pour trouver des produits de couleur gris sidéral par fabricant :

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

composé

Créez un index composé partiel sur le fabricant et la couleur pour les produits contenant un matériau 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" } })

multiclé

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 le fabricant :

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