BSON은 무엇이며 JSON과 정확히 어떻게 다른가요?


158

나는 MongoDB로 시작했으며 주목 한 것 중 하나는 BSON 을 사용 하여 데이터를 내부적으로 저장 한다는 것 입니다. 그러나 BSON의 정의와 MongoDB에서 BSON이 어떻게 사용되는지에 대한 문서는 명확하지 않습니다. 누군가 제게 설명해 주시겠습니까?


: 안녕하세요 이반은이 링크를 참조하십시오, 그것은 JSON과 BSON 참조 사이의 깊은 비교 포함 educba.com/json-vs-bson
여와

@Nuwa Ivan는 질문을하지 않았습니다. Akshat
UuDdLrLrSs

답변:


155

BSON 은 MongoDB가 문서를 콜렉션에 저장할 때 사용하는 JSON과 유사한 문서의 이진 인코딩입니다. JSON에서 지원되지 않는 Date 및 binary와 같은 데이터 유형에 대한 지원을 추가합니다.

실제로, MongoDB로 작업 할 때 BSON에 대해 많이 알 필요가 없으며 문서를 작성할 때 언어의 기본 유형과 드라이버의 제공된 유형 (예 : ObjectId) 만 사용하면됩니다. 드라이버에 의해 적절한 BSON 유형.


2
따라서 mongoDb가 문서를 bson으로 저장하면 데이터베이스를 쿼리 할 때 반환되는 유형은 무엇입니까? json으로 반환됩니까? 또는 bson은 그대로 반환됩니까?
Akshat Jiwan Sharma

13
아닙니다. 해당 언어의 MongoDB 드라이버는 문서를 해당 언어에 적합한 데이터 유형으로 변환합니다. 기본 데이터 유형이 가능한 많이 사용됩니다.
JohnnyHK

2
Javascript를 사용하여 BSON 문서 에서 데이터를 검색하면 C / C ++를 사용하여 검색 할 때 얻을 수있는 데이터 유형 차이가 발생하지 않습니다. 즉, 숫자가 소수가 아닌 경우 정수 로 처리됩니다 .
abhisekp

1
@abhisekp는 JohnnyHK의 설명과 최근 경험을 바탕으로 말한 것이 사실이라고 생각합니다.
nxmohamad 2013 년

BSON은 열 필드의 정확한 데이터 유형을 반환합니까? 또는 모든 유형에 대해 문자열로 반환합니까?
mRhNs13

45
  • BSON은 무엇입니까 ?

    이진 JSON의 약자 인 BSON [bee · sahn]은 JSON과 유사한 문서의 이진 인코딩 된 직렬화입니다.

  • 어떻게 다른 JSON ?

    BSON은 공간에서 효율적으로 설계되었지만 경우에 따라 JSON보다 훨씬 효율적이지 않습니다. 경우에 따라 BSON은 JSON보다 더 많은 공간을 사용합니다. 그 이유는 또 다른 BSON 설계 목표 인 순회 성입니다. BSON은 문자열 및 하위 객체 길이와 같은 일부 "추가"정보를 문서에 추가합니다. 이렇게하면 순회가 더 빨라집니다.

    BSON은 또한 인코딩 및 디코딩 속도가 빠르도록 설계되었습니다. 예를 들어, 정수는 32 (또는 64) 비트 정수로 저장되므로 텍스트와 구문 분석 할 필요가 없습니다. 작은 정수에는 JSON보다 많은 공간을 사용하지만 구문 분석하는 것이 훨씬 빠릅니다.

    압축 외에도 BSON은 JSON에서 사용할 수없는 추가 데이터 형식, 특히 BinDataDate 데이터 형식을 추가합니다.

출처 : http://bsonspec.org/


이것은 postgresql에서 분해 된 바이너리 JSON 데이터를 나타내는 데이터 유형 jsonb와 동일합니까?
PirateApp

13

MongoDB는 장면 뒤에서 BSON이라는 이진 인코딩 형식의 JSON 문서를 나타냅니다. BSON은 JSON 모델을 확장하여 추가 데이터 유형을 제공하고 다른 언어 내에서 인코딩 및 디코딩하는 데 효율적입니다.


12

MongoDB는 JSON 문서이진 인코딩 형식으로 나타내므로 장면 뒤에 BSON 이라고합니다 .

BSON은 JSON 모델을 확장하여 날짜 및 이진과 같은 추가 데이터 유형 (예 : JSON에서 지원 되지 않음) 을 제공하며 다른 언어 내에서 인코딩 및 디코딩하는 데 효율적으로 정렬 된 필드를 제공합니다. 

다시 말해 우리는 BSON이 이진 JSON 이라고 할 수 있습니다    (더 많은 데이터 유형, 가장 중요한 이진 바이트 배열을 가진 JSON의 상위 집합).

JSON의 직렬화 형식으로 사용하는 Mongodb 에는 문서를 저장하고 액세스하기위한 인코딩 형식이 포함되어 있습니다 . 간단히 BSON이 JSON 데이터를위한 이진 인코딩 형식이라고 말할 수 있습니다.

더 많은 mongoDB 기사 : https://om9x.com/blog/bson-vs-json/


링크가 끊어졌습니다
PlsWork

5

MongoDB는 JSON 위에 BSON 인코딩을 사용하여 원시 형식으로 JSON 문서 내에있는 값 위에 인덱스를 작성할 수 있습니다. NoSQL 시스템은 인덱스를 지원하지 않는 것으로 알려진 효율적인 분석 쿼리를 실행하는 데 도움이됩니다.


1

이 비교적 짧은 기사는 BSON과 JSON에 대한 꽤 좋은 설명을 제공합니다. JSON의 일부 문제점, BSON이 발명 된 이유, JSON과 비교하여 해결되는 문제점 및 이점에 대해 설명합니다.

https://www.compose.com/articles/from-json-to-bson-and-back/

내 유스 케이스 에서이 기사에서 JSON으로 직렬화하면 효과가 있으며 BSON으로 직렬화 할 필요가 없다고 나에게 이야기했다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.