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}
        ]
    }

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

  • 相关阅读:
    Arthur J.Riel的61条面向对象设计的经验原则[ZT]
    06年的CS Sub,挺像考研考纲的。。平时学习的时候,可以参考一下~
    Interop时候.Net和Win32对应数据类型
    Asp.Net使用POST方法最简单的实现
    在MasterPage中实现本地化
    最近MS比较High。。。
    语无伦次一下~
    初试Mono~ Virtual Server 果然强大~
    电竟3周年了,纪念一下。。
    又见了点市面~
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3192706.html
Copyright © 2011-2022 走看看