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에서 사용할 수없는 추가 데이터 형식, 특히 BinData 및 Date 데이터 형식을 추가합니다.

출처 : 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.