本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
索引属性:部分 FilterExpression
支持的索引类型
| Option | 3.6 | 4.0 | 5.0 | 8.0 | 弹性集群 |
|---|---|---|---|---|---|
| 单字段 | 否 | 否 | 是 | 是 | 否 |
| 复合排序 | 否 | 否 | 是 | 是 | 否 |
| 多键 | 否 | 否 | 是 | 是 | 否 |
| 地理空间 | 否 | 否 | 否 | 否 | 否 |
使用 partial FilterExpression 选项创建仅包含满足指定筛选条件的文档的部分索引。这使您可以通过仅索引集合中的一部分文档来创建更高效的索引,而不是为所有文档编制索引,从而减少索引大小并节省内存空间。由于索引大小较小,因此使用它的查询效率更高。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( { "manufacturer": 1 }, { "name": "manufacturer_space_gray", "partialFilterExpression": { "color": { $eq: "Space Gray" } } } )
在按制造商查找深空灰色产品时,将使用此索引:
db.collection.find({ "manufacturer": "The Manufacturer", "color": { $eq: "Space Gray" } })
化合物
为含有聚碳酸酯材料的商品创建制造商和颜色的部分化合物指数:
db.collection.createIndex( { "manufacturer": 1, "color": 1 }, { "name": "manufacturer_and_color_polycarbonate", "partialFilterExpression": { "material": { $eq: "Polycarbonate" } } } )
在按制造商和颜色查找聚碳酸酯材料产品时,将使用此索引:
db.collection.find({ "manufacturer": "The Manufacturer", "color": "Space Gray", "material": { $eq: "Polycarbonate" } })
多键
为制造商为 “制造商” 的商品在标签上创建部分多键索引:
db.collection.createIndex( { "tags": 1 }, { "name": "tags_the_manufacturer", "partialFilterExpression": { "manufacturer": { $eq: "The Manufacturer" } } } )
在查找带有打印机标签且制造商为 “制造商” 的产品时,将使用此索引:
db.collection.find({ "tags": "printer", "manufacturer": { $eq: "The Manufacturer" } })