Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼
/

확장 JSON 데이터로 작업하기

이 가이드 에서는 MongoDB 문서와 상호 작용할 때 확장 JSON 데이터 형식을 사용하는 방법을 학습 수 있습니다.

JSON 객체, 배열, 숫자, 문자열, 부울 및 null 값을 나타내는 사람이 읽을 수 있는 데이터 형식입니다. 이 형식은 MongoDB 데이터를 저장 데 사용하는 형식인 BSON 데이터 유형의 하위 집합만 지원합니다. 확장 JSON 형식은 더 많은 BSON 유형을 지원하며, BSON 의 각 유형에 직접적으로 대응하는 필드 유형 정보를 나타내기 위해 '$' 접두사가 붙은 예약된 키 설정하다 정의합니다.

MongoDB 확장 JSON BSON 데이터를 나타내는 두 가지 문자열 형식을 제공합니다. 각 형식은 JSON RFC 를 준수하며 특정 사용 사례를 충족합니다.

다음 표에서는 각 확장 JSON 형식에 대해 설명합니다.

이름
설명

표준 또는 확장

A string format that avoids loss of BSON type information during data conversions.
This format prioritizes type preservation at the loss of human-readability and interoperability with older formats.

완화 모드

A string format that describes BSON documents with some type information loss.
This format prioritizes human-readability and interoperability at the loss of certain type information.

JSON, BSON 및 확장 JSON에 대해 자세히 학습하려면 JSON 및 BSON 리소스와 확장 JSON MongoDB Server 수동 항목을 참조하세요.

다음 예시 확장 JSON 형식으로 표시된 ObjectId, 날짜 및 긴 숫자 필드 포함된 문서 보여줍니다. Canonical 또는 Relaxed Mode 탭 선택하여 각 확장 JSON 형식의 샘플 문서 봅니다.

{
"_id": { "$oid": "573a1391f29313caabcd9637" },
"createdAt": { "$date": { "$numberLong": "1601499609" }},
"numViews": { "$numberLong": "36520312" }
}
{
"_id": { "$oid": "573a1391f29313caabcd9637" },
"createdAt": { "$date": "2020-09-30T18:22:51.648Z" },
"numViews": 36520312
}

toRelaxedExtendedJSON()toCanonicalExtendedJSON() 메서드를 사용하여 BSON 문서 객체 에서 확장 JSON 문자열을 쓰기 (write) 수 있습니다.

다음 예시 BSON 문서 완화 및 표준 확장 JSON 형식으로 출력합니다.

$doc = [
'foo' => [1, 2],
'bar' => ['hello' => 'world'],
'code' => new MongoDB\BSON\Javascript('function x() { return 1; }', []),
'date' => new DateTime('2024-07-20 10:30:00'),
];
echo 'Relaxed format: ' , MongoDB\BSON\Document::fromPHP($doc)->toRelaxedExtendedJSON(), PHP_EOL;
echo 'Canonical format: ' , MongoDB\BSON\Document::fromPHP($doc)->toCanonicalExtendedJSON(), PHP_EOL;
Relaxed format: { "foo" : [ 1, 2 ], "bar" : { "hello" : "world" }, "code" :
{ "$code" : "function x() { return 1; }", "$scope" : { } }, "date" : { } }
Canonical format: { "foo" : [ { "$numberInt" : "1" }, { "$numberInt" : "2" } ],
"bar" : { "hello" : "world" }, "code" : { "$code" : "function x() { return 1; }",
"$scope" : { } }, "date" : { } }

확장 JSON PHP 배열 또는 객체 로 변환하는 json_decode() 메서드를 호출하여 확장 JSON 문자열을 PHP 값으로 읽을 수 있습니다. 다음 인수를 json_decode()에 전달합니다.

  • 읽을 확장 JSON 문자열입니다.

  • 배열 값을 반환할지 여부를 나타내는 부울 값입니다. false로 설정하다 하면 메서드는 객체 값을 반환합니다.

다음 예시 확장 JSON 문자열 값을 PHP 배열 로 변환합니다.

$ejsonStr = '{
"foo": [
{ "$numberInt": "1" },
{ "$numberInt": "2" }
],
"bar": { "hello": "world" },
"code": {
"$code": "function x() { return 1; }",
"$scope": {}
},
"bin": { "$binary": { "base64": "AQIDBA==", "subType": "00" } }
}';
$decodedJson = json_decode($ejsonStr, true);
print_r($decodedJson);
Array
(
[foo] => Array
(
[0] => Array
(
[$numberInt] => 1
)
[1] => Array
(
[$numberInt] => 2
)
)
[bar] => Array
(
[hello] => world
)
[code] => Array
(
[$code] => function x() { return 1; }
[$scope] => Array
(
)
)
[bin] => Array
(
[$binary] => Array
(
[base64] => AQIDBA==
[subType] => 00
)
)
)

이 페이지에서 설명하는 메서드에 대해 자세히 학습 다음 PHP 확장 API 문서를 참조하세요.

돌아가기

시계열

이 페이지의 내용