zoukankan      html  css  js  c++  java
  • BSON入门

    1、概念
    BSON(Binary Serialized Document Format)是一种类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等类型。

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

    MongoDB以BSON做为其存储结构的一种重要原因是其可遍历性。

    3、例子
    3.1 一个Document的BSON表示

    {
        title:"MongoDB",
        last_editor:"192.168.1.122",
        last_modified:new Date("27/06/2011"),
        body:"MongoDB introduction",
        categories:["Database","NoSQL","BSON"],
        revieved:false
    }

    这是一个简单的BSON结构体,其中每一个element都是由key/value对组成的。

    3.2 一个嵌套的例子

    {
        name:"lemo",
        age:"12",
        address:{
            city:"suzhou",
            country:"china",
            code:215000
        },
        scores:[
            {"name":"english","grade:3.0},
            {"name":"chinese","grade:2.0}
        ]
    }

    这是一种相对复杂点的例子,其中包括了地址对象和分数对象数组,这里使用了嵌套文档对象与文档对象数据来表示单个学生的信息,这种嵌套的文档结构要使用关系数据库来做是比较复杂的。

  • 相关阅读:
    linux的软连接和硬连接
    各种Python简单功能代码
    《财报就像一本故事书》刘顺仁(二) ——财务报表
    Atitit .h5文件上传 v3
    Atitti. 语法树AST、后缀表达式、DAG、三地址代码
    Atitit.在线充值功能的设计
    Atitit。数据库 安全性 重要敏感数据加密存储解决方案
    atitit.数据验证db数据库数据验证约束
    Atitit.提升电子商务安全性 在线充值功能安全方面的设计
    Atitit.antlr实现词法分析
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3192706.html
Copyright © 2011-2022 走看看