本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
索引屬性:partialFilterExpression
支援的索引類型
| 選項 | 3.6 | 4.0 | 5.0 | 8.0 | 彈性叢集 |
|---|---|---|---|---|---|
| 單一欄位 | 否 | 否 | 是 | 是 | 否 |
| compound | 否 | 否 | 是 | 是 | 否 |
| 多金鑰 | 否 | 否 | 是 | 是 | 否 |
| 地理空間 | 否 | 否 | 否 | 否 | 否 |
使用 partialFilterExpression 選項建立部分索引,只包含符合指定篩選條件的文件。這可讓您建立更有效率的索引,方法是僅編製集合中文件子集的索引,而不是編製所有文件的索引,減少索引大小並節省記憶體空間。由於索引大小較小,因此使用它的查詢會更有效率。在下列案例中,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') }
單一欄位
在製造商上為具有 Space Gray 顏色的產品建立部分單一欄位索引:
db.collection.createIndex( { "manufacturer": 1 }, { "name": "manufacturer_space_gray", "partialFilterExpression": { "color": { $eq: "Space Gray" } } } )
依製造商尋找 Space Gray 顏色產品時,將會使用此索引:
db.collection.find({ "manufacturer": "The Manufacturer", "color": { $eq: "Space Gray" } })
複合
為具有 Poly carbonate 材料的產品,在製造商和顏色上建立部分複合索引:
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" } })