私はMongoDBを使い始めたばかりですが、BSONを使用してデータを内部に格納していることに気付きました。ただし、BSONとは何か、MongoDBでBSONがどのように使用されているかについては、ドキュメントが明確ではありません。誰かが私にそれを説明できますか?
私はMongoDBを使い始めたばかりですが、BSONを使用してデータを内部に格納していることに気付きました。ただし、BSONとは何か、MongoDBでBSONがどのように使用されているかについては、ドキュメントが明確ではありません。誰かが私にそれを説明できますか?
回答:
BSONは、MongoDBがドキュメントをコレクションに格納するときに使用するJSONのようなドキュメントのバイナリエンコーディングです。JSONでサポートされていない日付やバイナリなどのデータ型のサポートを追加します。
実際には、MongoDBを操作するときにBSONについて詳しく知る必要はありません。ドキュメントを構築するときに、言語のネイティブタイプとそのドライバーの提供されたタイプ(ObjectIdなど)を使用するだけで、ドキュメントにマップされます。ドライバーによる適切なBSONタイプ。
何BSONは?
BSON [bee・sahn](Binary JSONの略)は、JSONのようなドキュメントをバイナリエンコードしてシリアル化したものです。
JSONとどう違うのですか?
BSONは空間で効率的になるように設計されていますが、場合によってはJSONよりも効率的ではありません。場合によっては、BSONはJSONよりもさらに多くのスペースを使用します。この理由は、BSON設計のもう1つの目標である、通過可能性です。BSONは、文字列やサブオブジェクトの長さなど、いくつかの「追加」情報をドキュメントに追加します。これにより、走査が速くなります。
BSONは、エンコードとデコードが高速になるようにも設計されています。たとえば、整数は32ビット(または64ビット)の整数として格納されるため、テキストとの間で解析する必要はありません。これは小さな整数の場合、JSONよりも多くのスペースを使用しますが、解析ははるかに高速です。
コンパクト性に加えて、BSONはJSONで使用できないデータ型、特にBinDataおよびDateデータ型を追加します。
出典:http : //bsonspec.org/
MongoDBは、BSONと呼ばれるバイナリエンコード形式でJSON文書を舞台裏で表します。BSONはJSONモデルを拡張して、追加のデータ型を提供し、さまざまな言語でのエンコードおよびデコードを効率的に行います。
MongoDBは、JSONドキュメントをバイナリエンコード形式で表すため、裏でBSONと呼んでいます。
BSONは、JSONモデルを拡張して、JSONでサポートされていない日付やバイナリなどの追加のデータ型を提供します。異なる言語でのエンコードとデコードを効率的に行うために、順序付けされたフィールドも提供します。
言い換えれば、BSONは単なるバイナリJSON (いくつかのデータ型を含むJSONのスーパーセット、最も重要なのはバイナリバイト配列)であると言え ます。
JSONのシリアライゼーション形式として使用するMongodbは、ドキュメントの保存とアクセスのためのエンコーディング形式を含みます。単にBSONはJSONデータのバイナリエンコード形式であると言えます。
mongoDB記事の詳細:https ://om9x.com/blog/bson-vs-json/
この比較的短い記事は、BSONとJSONのかなり良い説明を提供します:それは、JSONに関するいくつかの問題、BSONが発明された理由、JSONと比較してどのような問題を解決するか、そしてそれがどのようにあなたに利益をもたらすかについて話します。
https://www.compose.com/articles/from-json-to-bson-and-back/
私のユースケースでは、その記事は、JSONへのシリアル化が機能し、BSONにシリアル化する必要がないことを教えてくれました