
Extended JSON은 MongoDB에서 사용하는 JSON 확장 형식으로, 기본 JSON과 다르게 특정 필드나 속성을 추가로 지원합니다.
타입 인코딩:
- Extended JSON에서는 타입을 명시적으로 지정할 필요가 없습니다. 예를 들어, 숫자 값은 기본적으로 숫자로 인식됩니다.
- 하지만, 타입을 명시적으로 지정하고 싶다면, `:number` 형식으로 지정할 수 있습니다. 예를 들어, `:number(123)`은 숫자 123을 나타냅니다.
날짜 및 시간 형식:
- Extended JSON에서는 날짜 및 시간을 ISODate 형식으로 지원합니다. 예를 들어, `ISODate("2022-01-01T12:00:00.000Z")`은 2022년 1월 1일 12:00:00에 해당합니다.
- 또한, UTCDateTime 형식도 지원합니다. 예를 들어, `UTCDateTime(1640995200000)`은 2022년 1월 1일 12:00:00에 해당합니다.
특수한 필드나 속성:
- Extended JSON에서는 특수한 필드나 속성을 다룰 때, `$` 기호를 사용합니다. 예를 들어, `$set`은 필드를 업데이트하는 명령어입니다.
- 또한, `$` 기호를 사용하여 필드 이름을 지정할 수 있습니다. 예를 들어, `$name`은 `name` 필드를 나타냅니다.
예를 들어, 다음 코드는 Extended JSON을 사용하여 MongoDB 문서를 JSON 형식으로 변환합니다.
#hostingforum.kr
php
$bsonDoc = new MongoDBBSONDocument([
'_id' => new MongoDBBSONObjectId('...'),
'created_at' => new MongoDBBSONUTCDateTime(1640995200000),
'name' => 'John Doe',
]);
$json = $bsonDoc->toCanonicalExtendedJSON();
print($json);
이 코드는 다음 JSON 문자열을 출력합니다.
#hostingforum.kr
json
{
"_id" : BinData(3,"..."),
"created_at" : ISODate("2022-01-01T12:00:00.000Z"),
"name" : "John Doe"
}
이러한 예제를 통해 Extended JSON의 특성과 구문을 이해할 수 있습니다.
2025-05-24 12:36