BSON数据格式

匿名 (未验证) 提交于 2019-12-02 23:05:13

BSON

https://baike.baidu.com/item/BSON

概念

编辑

BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,
BSON有三个特点:轻量性、可遍历性、高效性
{"hello":"world"} 这是一个BSON的例子,其中"hello"是key name,它一般是cstring类型,字节表示是cstring::= (byte*) "/x00" ,其中*表示零个或多个byte字节,/x00表示结束符;后面的"world"是value值,它的类型一般是string,double,array,binarydata等类型。

使用情况

编辑
MongoDB使用了BSON这种结构来存储数据和网络数据交换。把这种格式转化成一文档这个概念(Document),因为BSON是schema-free的,所以在MongoDB中所对应的文档也有这个特征,这里的一个Document也可以理解成关系数据库中的一条记录(Record),只是这里的Document的变化更丰富一些,如Document可以嵌套。
MongoDB以BSON做为其存储结构的一种重要原因是其可遍历性。

官网

http://bsonspec.org/

BSON JSON

  1. Lightweight

  2. Traversable

    .

  3. Efficient

JSON比较

https://www.mongodb.com/json-and-bson

Binary JSON (BSON)

MongoDB represents JSON documents in binary-encoded format called BSON behind the scenes. BSON extends the JSON model to provide additional data types, ordered fields, and to be efficient for encoding and decoding within different languages.

MongoDB, BSON, and JSON

http://mongodb.github.io/mongo-csharp-driver/2.0/reference/bson/bson/

BSON

BsonBinaryWriter is for writing binary BSON. For example, to write the document { a: 1 } to a BSON file:

string outputFileName; // initialize to the file to write to.  using (var stream = File.OpenWrite(outputFileName)) using (var writer = new BsonBinaryWriter(stream)) {     writer.WriteStartDocument();     writer.WriteName("a");     writer.WriteInt32(1);     writer.WriteEndDocument(); } 

JSON

In the same way, we can write a JSON string using a JsonWriter. For example, to write the document { a: 1 }:

string outputFileName; // initialize to the file to write to.  using (var output = new StreamWriter(outputFileName)) using (var writer = new JsonWriter(output)) {     writer.WriteStartDocument();     writer.WriteName("a");     writer.WriteInt32(1);     writer.WriteEndDocument(); } 

https://blog.csdn.net/zfskkk/article/details/78608844

查询、修改 BSON 大于JSON

总上所述:

数据结构:
  json是像字符串一样存储的,bson是按结构存储的(像数组 或者说struct)

存储空间
  bson>json

操作速度
  bson>json。比如,遍历查找:json需要扫字符串,而bson可以直接定位

修改:
  json也要大动大移,bson就不需要。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!