라이브러리

[PHP] MongoDBDriverCursorInterface::setTypeMap - BSON 역직렬화에 사용할 유형 맵을 설정합니다.




MongoDBDriverCursorInterface::setTypeMap

`MongoDBDriverCursorInterface::setTypeMap`은 MongoDB 드라이버의 커서 인터페이스에서 사용할 수 있는 메소드입니다. 이 메소드는 커서에서 반환되는 데이터의 타입을 매핑하는 데 사용됩니다.

setTypeMap의 사용 이유

MongoDB는 BSON (Binary Serialized Object Notation) 형식으로 데이터를 저장합니다. 하지만 PHP는 BSON을 지원하지 않기 때문에, MongoDB 드라이버는 BSON을 PHP의 데이터 타입으로 매핑해야 합니다. `setTypeMap` 메소드는 이 매핑을 수행하는 데 사용됩니다.

setTypeMap의 예제

#hostingforum.kr
php

use MongoDBDriverCursor;

use MongoDBDriverManager;

use MongoDBDriverQuery;



$manager = new Manager("mongodb://localhost:27017");

$db = $manager->selectDatabase("mydb");

$collection = $db->selectCollection("mycollection");



$query = new Query();

$cursor = $collection->find($query);



// setTypeMap을 사용하여 커서의 데이터 타입을 매핑

$cursor->setTypeMap([

    'root' => 'array',

    'document' => 'array',

    'array' => 'array',

    'int32' => 'integer',

    'int64' => 'integer',

    'timestamp' => 'integer',

    'double' => 'double',

    'string' => 'string',

    'binaryData' => 'string',

    'objectId' => 'string',

    'boolean' => 'boolean',

    'date' => 'string',

    'null' => 'null',

    'regex' => 'array',

    'code' => 'array',

    'symbol' => 'string',

    'codeWScope' => 'array',

    'documentReference' => 'array',

]);



// 커서의 데이터를 가져와 출력

foreach ($cursor as $document) {

    print_r($document);

}



setTypeMap의 옵션

`setTypeMap` 메소드는 여러 옵션을 지원합니다. 예를 들어, `root` 옵션은 커서의 데이터가 배열 형식으로 반환되도록 설정할 수 있습니다. `document` 옵션은 커서의 데이터가 객체 형식으로 반환되도록 설정할 수 있습니다.

#hostingforum.kr
php

$cursor->setTypeMap([

    'root' => 'array', // 커서의 데이터가 배열 형식으로 반환되도록 설정

    'document' => 'array', // 커서의 데이터가 객체 형식으로 반환되도록 설정

    'array' => 'array', // 커서의 데이터가 배열 형식으로 반환되도록 설정

    'int32' => 'integer', // int32 형식의 데이터가 integer 형식으로 반환되도록 설정

    'int64' => 'integer', // int64 형식의 데이터가 integer 형식으로 반환되도록 설정

    'timestamp' => 'integer', // timestamp 형식의 데이터가 integer 형식으로 반환되도록 설정

    'double' => 'double', // double 형식의 데이터가 double 형식으로 반환되도록 설정

    'string' => 'string', // string 형식의 데이터가 string 형식으로 반환되도록 설정

    'binaryData' => 'string', // binaryData 형식의 데이터가 string 형식으로 반환되도록 설정

    'objectId' => 'string', // objectId 형식의 데이터가 string 형식으로 반환되도록 설정

    'boolean' => 'boolean', // boolean 형식의 데이터가 boolean 형식으로 반환되도록 설정

    'date' => 'string', // date 형식의 데이터가 string 형식으로 반환되도록 설정

    'null' => 'null', // null 형식의 데이터가 null 형식으로 반환되도록 설정

    'regex' => 'array', // regex 형식의 데이터가 array 형식으로 반환되도록 설정

    'code' => 'array', // code 형식의 데이터가 array 형식으로 반환되도록 설정

    'symbol' => 'string', // symbol 형식의 데이터가 string 형식으로 반환되도록 설정

    'codeWScope' => 'array', // codeWScope 형식의 데이터가 array 형식으로 반환되도록 설정

    'documentReference' => 'array', // documentReference 형식의 데이터가 array 형식으로 반환되도록 설정

]);



setTypeMap의 장점

`setTypeMap` 메소드를 사용하면 커서의 데이터를 더 쉽게 처리할 수 있습니다. 예를 들어, 커서의 데이터가 객체 형식으로 반환되도록 설정하면, PHP의 객체를 사용하여 데이터를 처리할 수 있습니다.

setTypeMap의 단점

`setTypeMap` 메소드를 사용하면 커서의 데이터를 처리하는 데 추가적인 오버헤드가 발생할 수 있습니다. 예를 들어, 커서의 데이터가 배열 형식으로 반환되도록 설정하면, PHP의 배열을 사용하여 데이터를 처리할 수 있지만, 데이터를 처리하는 데 추가적인 시간이 걸릴 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 398 페이지

검색

게시물 검색