나는 MongoDB로 시작했으며 주목 한 것 중 하나는 BSON 을 사용 하여 데이터를 내부적으로 저장 한다는 것 입니다. 그러나 BSON의 정의와 MongoDB에서 BSON이 어떻게 사용되는지에 대한 문서는 명확하지 않습니다. 누군가 제게 설명해 주시겠습니까?
나는 MongoDB로 시작했으며 주목 한 것 중 하나는 BSON 을 사용 하여 데이터를 내부적으로 저장 한다는 것 입니다. 그러나 BSON의 정의와 MongoDB에서 BSON이 어떻게 사용되는지에 대한 문서는 명확하지 않습니다. 누군가 제게 설명해 주시겠습니까?
답변:
BSON 은 MongoDB가 문서를 콜렉션에 저장할 때 사용하는 JSON과 유사한 문서의 이진 인코딩입니다. JSON에서 지원되지 않는 Date 및 binary와 같은 데이터 유형에 대한 지원을 추가합니다.
실제로, MongoDB로 작업 할 때 BSON에 대해 많이 알 필요가 없으며 문서를 작성할 때 언어의 기본 유형과 드라이버의 제공된 유형 (예 : ObjectId) 만 사용하면됩니다. 드라이버에 의해 적절한 BSON 유형.
BSON은 무엇입니까 ?
이진 JSON의 약자 인 BSON [bee · sahn]은 JSON과 유사한 문서의 이진 인코딩 된 직렬화입니다.
어떻게 다른 JSON ?
BSON은 공간에서 효율적으로 설계되었지만 경우에 따라 JSON보다 훨씬 효율적이지 않습니다. 경우에 따라 BSON은 JSON보다 더 많은 공간을 사용합니다. 그 이유는 또 다른 BSON 설계 목표 인 순회 성입니다. BSON은 문자열 및 하위 객체 길이와 같은 일부 "추가"정보를 문서에 추가합니다. 이렇게하면 순회가 더 빨라집니다.
BSON은 또한 인코딩 및 디코딩 속도가 빠르도록 설계되었습니다. 예를 들어, 정수는 32 (또는 64) 비트 정수로 저장되므로 텍스트와 구문 분석 할 필요가 없습니다. 작은 정수에는 JSON보다 많은 공간을 사용하지만 구문 분석하는 것이 훨씬 빠릅니다.
압축 외에도 BSON은 JSON에서 사용할 수없는 추가 데이터 형식, 특히 BinData 및 Date 데이터 형식을 추가합니다.
출처 : http://bsonspec.org/
MongoDB는 JSON 문서 를 이진 인코딩 형식으로 나타내므로 장면 뒤에 BSON 이라고합니다 .
BSON은 JSON 모델을 확장하여 날짜 및 이진과 같은 추가 데이터 유형 (예 : JSON에서 지원 되지 않음) 을 제공하며 다른 언어 내에서 인코딩 및 디코딩하는 데 효율적으로 정렬 된 필드를 제공합니다.
다시 말해 우리는 BSON이 이진 JSON 이라고 할 수 있습니다 (더 많은 데이터 유형, 가장 중요한 이진 바이트 배열을 가진 JSON의 상위 집합).
JSON의 직렬화 형식으로 사용하는 Mongodb 에는 문서를 저장하고 액세스하기위한 인코딩 형식이 포함되어 있습니다 . 간단히 BSON이 JSON 데이터를위한 이진 인코딩 형식이라고 말할 수 있습니다.
더 많은 mongoDB 기사 : https://om9x.com/blog/bson-vs-json/
MongoDB는 JSON 위에 BSON 인코딩을 사용하여 원시 형식으로 JSON 문서 내에있는 값 위에 인덱스를 작성할 수 있습니다. NoSQL 시스템은 인덱스를 지원하지 않는 것으로 알려진 효율적인 분석 쿼리를 실행하는 데 도움이됩니다.
이 비교적 짧은 기사는 BSON과 JSON에 대한 꽤 좋은 설명을 제공합니다. JSON의 일부 문제점, BSON이 발명 된 이유, JSON과 비교하여 해결되는 문제점 및 이점에 대해 설명합니다.
https://www.compose.com/articles/from-json-to-bson-and-back/
내 유스 케이스 에서이 기사에서 JSON으로 직렬화하면 효과가 있으며 BSON으로 직렬화 할 필요가 없다고 나에게 이야기했다.