(mongodb >=1.16.0)
MongoDB\Driver\ClientEncryption::encryptExpression β Π¨ΠΈΡΡΡΠ΅Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
$expr, ?array $options = null): objectΠΠ΅ΡΠΎΠ΄ ΡΠΈΡΡΡΠ΅Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ
Π΄ΡΠ°ΠΉΠ²Π΅Ρ MongoDB\Driver\Manager ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΡΡ
Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ "autoEncryption".
ΠΠΏΡΠΈΡ "bypassQueryAnalysis" Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true.
ΠΠ»Ρ ΠΎΠΏΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ "bypassAutoEncryption" ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Π΄Π»Ρ BSON-ΠΏΠΎΠ»Π΅ΠΉ Ρ ΡΠΈΠΏΠΎΠΌ Decimal128.
expr$gt, $gte,
$lt ΠΈΠ»ΠΈ $lte.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ $and Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ,
Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΈ ΡΡΠ°ΠΏΠ° Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ $match) Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
[
'$and' => [
[ '<field>' => [ '$gt' => '<value1>' ] ],
[ '<field>' => [ '$lte' => '<value2>' ] ],
],
]
[
'$and' => [
[ '$gte' => [ '<fieldPath>', '<value1>' ] ],
[ '$lt' => [ '<fieldPath>', '<value2>' ] ],
],
]
options
| ΠΠΏΡΠΈΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| algorithm | string |
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΠΏΡΠΈΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°.
Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ClientEncryption:
|
||||||||||||||||||
| contentionFactor | int |
ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ
Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ.
ΠΠΏΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π°
ΠΎΠΏΡΠΈΡ algorithm ΡΠ°Π²Π½Π°
MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
ΠΈΠ»ΠΈ
MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE.
|
||||||||||||||||||
| keyAltName | string |
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΠΎ keyAltName.
ΠΠΏΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅ΠΉ Ρ keyId ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½.
|
||||||||||||||||||
| keyId | MongoDB\BSON\Binary |
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠ»ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ _id. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ UUID
(Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄ΡΠΈΠΏ 4). ΠΠΏΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅ΠΉ Ρ keyAltName
ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½.
|
||||||||||||||||||
| queryType | string |
Π’ΠΈΠΏ Π·Π°ΠΏΡΠΎΡΠ° Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ
ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ClientEncryption:
algorithm ΡΠ°Π²Π½Π°
MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
ΠΈΠ»ΠΈ MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE.
|
||||||||||||||||||
| rangeOpts | array |
ΠΠΏΡΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄Π»Ρ ΡΠΈΡΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡΠΎΠ² Β«rangeΒ».
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°Π±Π·Π°ΡΡ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ
Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ encryptedFields ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠ»Ρ BSON-ΠΏΠΎΠ»Π΅ΠΉ Ρ ΡΠΈΠΏΠΎΠΌ double ΠΈ decimal128 ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΠ±ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ
min, max ΠΈ precision, Π»ΠΈΠ±ΠΎ Π²ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ.
|
ΠΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
| ΠΠ΅ΡΡΠΈΡ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| PECL-ΠΌΠΎΠ΄ΡΠ»Ρ mongodb 1.20.0 |
Π ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ rangeOpts Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠΏΡΠΈΡ
ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° "trimFactor".
ΠΠΏΡΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° "sparsity" ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°.
|