2024 年 PHP Conference Japan

MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpression加密比對或聚合運算式

說明

final public MongoDB\Driver\ClientEncryption::encryptExpression(陣列|物件 $expr, ?陣列 $options = null): 物件

加密匹配或聚合表達式,以查詢範圍索引。

要使用範圍加密的有效負載進行查詢,MongoDB\Driver\Manager 必須使用 "autoEncryption" 驅動程式選項進行設定。"bypassQueryAnalysis" 自動加密選項可以是 true"bypassAutoEncryption" 自動加密選項必須是 false

注意:

此擴充功能尚不支援 Decimal128 BSON 欄位類型的範圍查詢。

參數

expr

要加密的匹配或聚合表達式。表達式必須至少使用 $gt$gte$lt$lte 運算子其中之一。即使只使用單個比較運算子,也需要頂層的 $and 運算子。

支援的匹配表達式範例(適用於查詢和 $match 聚合階段)如下所示

[
    '$and' => [
        [ '<field>' => [ '$gt'  => '<value1>' ] ],
        [ '<field>' => [ '$lte' => '<value2>' ] ],
    ],
]

支援的聚合表達式範例如下所示

[
    '$and' => [
        [ '$gte' => [ '<fieldPath>', '<value1>' ] ],
        [ '$lt'  => [ '<fieldPath>', '<value2>' ] ],
    ],
]
options

加密選項
選項 類型 說明
algorithm 字串

要使用的加密演算法。此選項為必填。指定以下其中一個 ClientEncryption 常數

contentionFactor 整數

使用已建立索引的加密有效負載評估查詢的爭用因子。

此選項僅適用於,且僅可在 algorithmMongoDB\Driver\ClientEncryption::ALGORITHM_INDEXEDMongoDB\Driver\ClientEncryption::ALGORITHM_RANGE 時指定。

keyAltName 字串

透過 keyAltName 識別金鑰儲存庫集合文件。此選項與 keyId 互斥,且必須擇一指定。

keyId MongoDB\BSON\Binary

透過 _id 識別資料金鑰。該值是一個 UUID(二進位子類型 4)。此選項與 keyAltName 互斥,且必須擇一指定。

queryType 字串

使用已建立索引的加密有效負載評估查詢的查詢類型。指定以下其中一個 ClientEncryption 常數

此選項僅適用於,且僅可在 algorithmMongoDB\Driver\ClientEncryption::ALGORITHM_INDEXEDMongoDB\Driver\ClientEncryption::ALGORITHM_RANGE 時指定。

rangeOpts 陣列

支援「範圍」查詢的可查詢加密欄位的索引選項。以下選項必須與目標集合的 encryptedFields 中設定的值相符。對於 double 和 decimal128 BSON 欄位類型,minmaxprecision 必須全部設定或全部取消設定。

範圍索引選項
選項 類型 說明
最小值 (min) 混合 (mixed) 如果設定了 precision,則此欄位為必要項。範圍的最小 BSON 值。
最大值 (max) 混合 (mixed) 如果設定了 precision,則此欄位為必要項。範圍的最大 BSON 值。
稀疏度 (sparsity) 整數 選用。正的 64 位元整數。
精度 (precision) 整數 選用。正的 32 位元整數,指定用於顯式加密的精度。只能設定為 double 或 decimal128 BSON 欄位類型。
修剪因子 (trimFactor) 整數 選用。正的 32 位元整數。

回傳值

以物件形式回傳加密後的表達式。

錯誤/例外

更新日誌

版本 說明
PECL mongodb 1.20.0 新增了 "trimFactor" 範圍選項。"sparsity" 範圍選項現在為選用。

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top