데이터 형식
이 페이지의 내용
MongoDB 는 BSON 형식으로 데이터를 저장합니다. 는 구조가 JSON 객체 와 유사하지만 추가 데이터 유형을 지원하고 바이너리 인코딩을 사용합니다. BSON 은 컴퓨터에는 효율적이지만 사람이 읽을 수 없으므로 직접 작업할 수는 없습니다.
대신 데이터 API는 JSON 및 EJSON이라는 두 가지 형식을 사용하여 요청 및 응답으로 데이터를 표현합니다.
생성된 모든 데이터 API 엔드포인트와 각 사용자 지정 엔드포인트에 대해 개별적으로 단일 기본 반환 유형을 정의합니다. 수신 요청은 Accept
헤더를 사용하여 기본값을 재정의하는 기본 데이터 형식을 지정할 수도 있습니다.
예시
이 문서는 JSON으로 표시하거나 EJSON은 JSON 및 EJSON으로 표시되는 BSON types을(를) 표시할 수 있습니다.
{ "Name": "Mango", "Year": { "$numberLong": "2022" }, "Weight": { "$numberDecimal": "9823.1297" }, "Date": { "$date": { "$numberLong": "1641954803067" } } }
{ "Name": "Mango", "Year": 2022, "Weight": "9823.1297", "Date": "2022-01-12T02:33:23.067Z" }
생성된 모든 데이터 API 엔드포인트와 각 사용자 지정 엔드포인트에 대해 개별적으로 단일 기본 반환 유형을 정의합니다. 수신 요청은 Accept
헤더를 사용하여 기본값을 재정의하는 기본 데이터 형식을 지정할 수도 있습니다.
표준 JSON(application/json)
JSON 형식은 모든 도구가 구문 분석하고 이해할 수 있는 표준 유형을 사용합니다. 그러나 JSON은 모든 BSON types를 나타낼 수 없으므로 JSON 응답은 일부 필드에 대한 유형 정보가 손실될 수 있습니다. 예를 들어 BSON에는 32비트 정수와 64비트 실수에 대한 고유한 유형이 있지만 JSON 응답은 둘 다 number
로 나타납니다.
표준 및 완화 EJSON(application/ejson)
MongoDB Extended JSON 의 약자인 EJSON 형식은 구조화된 필드를 사용하여 해당 JSON 유형이 없는 BSON 데이터를 나타내는 표준 JSON 의 상위 집합입니다. 이는 데이터를 완전히 나타내지만 클라이언트 가 EJSON으로 작업하는 방법을 이해해야 합니다.
EJSON에는 두 가지 변형이 있습니다.
표준 EJSON 은 가독성과 상호 운용성을 희생하면서 유형 보존을 강조하는 장황한 구조를 사용합니다. BSON types를 완전히 나타내지만 이를 사용하려면 라이브러리나 사용자 지정 코드를 사용해야 할 수도 있습니다.
완화된 EJSON 은 읽고 작업하기 더 쉽지만 일부 BSON types의 경우 유형 정보가 손실될 수 있는 더 간결한 구조를 사용합니다. 예를 들어, 삽입된 문서의 숫자 필드는 예상과 다른 숫자 BSON type으로 유추될 수 있습니다.
요청 본문에는 표준 또는 완화 EJSON을 사용할 수 있습니다. EJSON을 반환하도록 구성된 데이터 API 엔드포인트는 항상 표준 EJSON을 반환합니다.
BSON 유형
이 섹션에서는 Data API가 지원하는 BSON types을 나열하고 각 유형이 JSON 및 EJSON 형식으로 표현되는 방식을 보여줍니다.
배열
EJSON | JSON | ||
---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|
바이너리
EJSON | JSON | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|
날짜
EJSON | JSON | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
캐노니컬 EJSON
편안한 EJSON
|
|
Decimal128
EJSON | JSON | ||
---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|
문서
EJSON | JSON | ||
---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|
Double
EJSON | JSON | |||
---|---|---|---|---|
캐노니컬 EJSON
편안한 EJSON
|
|
Int32
EJSON | JSON | |||
---|---|---|---|---|
캐노니컬 EJSON
편안한 EJSON
|
|
Int64
EJSON | JSON | ||
---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|
최대 키
EJSON | JSON | ||
---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
이에 상응하는 JSON 없음 |
최소 키
EJSON | JSON | ||
---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
이에 상응하는 JSON 없음 |
ObjectId
EJSON | JSON | ||
---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|
정규 표현식
EJSON | JSON | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|
타임스탬프
EJSON | JSON | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
캐노니컬 EJSON
편안한 EJSON 표준과 동일 |
|