查詢

MongoDB\Driver\Cursor::setTypeMap()函式—用法及示例

「 設定遊標返回結果的型別對映 」


函式名:MongoDB\Driver\Cursor::setTypeMap()

適用版本:MongoDB擴充套件版本1.2.0及以上

用法:該方法用於設定遊標返回結果的型別對映。型別對映允許將MongoDB文件欄位的資料型別轉換為PHP中對應的資料型別。預設情況下,MongoDB\Driver\Cursor返回的結果是關聯陣列。

語法:public MongoDB\Driver\Cursor::setTypeMap(array $typemap) : void

引數:

  • $typemap(必需):一個關聯陣列,用於指定型別對映規則。陣列的鍵是MongoDB文件欄位的名稱,值是對應的PHP資料型別。

返回值:無

示例:

// 建立MongoDB連線
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

// 建立查詢
$query = new MongoDB\Driver\Query([]);

// 執行查詢並獲取遊標
$cursor = $manager->executeQuery("test.collection", $query);

// 設定型別對映規則
$typeMap = [
    'age' => 'int',
    'name' => 'string',
    'address' => 'array',
    'is_active' => 'bool'
];
$cursor->setTypeMap($typeMap);

// 遍歷遊標結果
foreach ($cursor as $document) {
    // 訪問欄位並確保其資料型別已轉換
    $age = (int)$document->age;
    $name = (string)$document->name;
    $address = (array)$document->address;
    $is_active = (bool)$document->is_active;

    // 列印轉換後的資料
    echo "Age: $age, Name: $name, Address: ";
    print_r($address);
    echo "Is Active: " . ($is_active ? 'Yes' : 'No') . "\n";
}

在上述示例中,我們首先建立了一個MongoDB連線和查詢。然後,我們透過呼叫setTypeMap()方法設定了型別對映規則。在遍歷遊標結果時,我們將對應欄位的值轉換為指定的PHP資料型別,並列印出來。這樣我們就可以確保在使用結果資料時,其型別與預期一致。

補充糾錯
熱門PHP函式
分享連結