函数名称:MongoDB\Driver\Manager::getEncryptedFieldsMap()
函数描述:返回一个映射表,该表包含加密字段的信息。
适用版本:MongoDB PHP扩展版本1.7.0及以上。
用法:
public function getEncryptedFieldsMap(): array
返回值:一个关联数组,其中键是集合名称,值是一个包含加密字段信息的关联数组。
示例:
<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
// 创建一个集合
$command = new MongoDB\Driver\Command([
'create' => 'users',
'validator' => [
'$jsonSchema' => [
'bsonType' => 'object',
'required' => ['name', 'email'],
'properties' => [
'name' => ['bsonType' => 'string'],
'email' => ['bsonType' => 'string']
]
]
]
]);
$manager->executeCommand('mydb', $command);
// 向集合中插入一些文档
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['name' => 'John Doe', 'email' => 'johndoe@example.com']);
$bulk->insert(['name' => 'Jane Smith', 'email' => 'janesmith@example.com']);
$manager->executeBulkWrite('mydb.users', $bulk);
// 获取加密字段的映射表
$encryptedFieldsMap = $manager->getEncryptedFieldsMap();
// 打印映射表
print_r($encryptedFieldsMap);
?>
输出示例:
Array
(
[users] => Array
(
[0] => Array
(
[name] => encrypted
[email] => encrypted
)
)
)
注意事项:
- 该函数需要MongoDB PHP扩展版本1.7.0及以上。
- 在使用此函数之前,需要确保已经启用了字段级加密(Field-Level Encryption)功能。
- 返回的映射表中,每个集合对应一个关联数组,其中键是集合名称,值是一个包含加密字段信息的关联数组。
- 加密字段信息的关联数组中,键是字段名称,值是加密状态,如果字段被加密,则值为"encrypted",否则为"not encrypted"。