zoukankan      html  css  js  c++  java
  • MongoDB学习笔记-数据格式及数据类型

    JSON

        JSON是一种简单的数据表示方式,它易于理解、易于解析、易于记忆。但从另一方面来说,因为只有null、布尔、数字、字符串、数组和对象这几种数据类型,所以JSON有一定局限性。例如,JSON没有日期类型,JSON只有一种数字类型,无法区分浮点数和整数,更别说区分32为和64位数字了。再者,JSON无法表示其他一些通用类型,如正则表达式或函数。

    BSON

        BSON(Binary Serialized Document Format)是一种类JSON的二进制形式的存储格式,简称Binary JSON。它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。它支持下面数据类型。每个数据类型对应一个数字,在MongoDB中可以使用$type操作符查看相应的文档的BSON类型

    类型 对应数字 别名 说明
    Double1 1 double  
    String 2 string  
    Object 3 object  
    Array 4 array  
    Binary data 5 binData  
    Undefined 6 undefined 弃用
    ObjectId 7 objectId  
    Boolean 8 “bool”  
    Date 9 “date”  
    Null 10 “null”  
    Regular Expression 11 “regex”  
    DBPointer 12 “dbPointer”  
    JavaScript 13 “javascript”  
    Symbol 14 “symbol”  
    JavaScript(with scope) 15 “javascriptWithScope”  
    32-bit integer 16 “int”  
    Timestamp 17 “timestamp”  
    64-bit integer 18 “long”  
    Min key -1 “minKey”  
    Max key 127 “maxKey”  

    基本数据类型

    null:用于表示空值或者不存在的字段,{“x”:null}

    布尔型:布尔类型有两个值true和false,{“x”:true}

    数值:shell默认使用64为浮点型数值。{“x”:3.14}或{“x”:3}。对于整型值,可以使用NumberInt(4字节符号整数)或NumberLong(8字节符号整数),{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}

    字符串:UTF-8字符串都可以表示为字符串类型的数据,{“x”:“呵呵”}

    日期:日期被存储为自新纪元依赖经过的毫秒数,不存储时区,{“x”:new Date()}

    正则表达式:查询时,使用正则表达式作为限定条件,语法与JavaScript的正则表达式相同,{“x”:/[abc]/}

    数组:数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]}

    内嵌文档:文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3 }}

    对象Id:对象id是一个12字节的字符串,是文档的唯一标识,{“x”: objectId() }

    二进制数据:二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要将非utf-字符保存到数据库中,二进制数据是唯一的方式。

    代码:查询和文档中可以包括任何JavaScript代码,{“x”:function(){/*…*/}}

    BSON 与 MongoDB 的关系

        BSON是用于存储MongoDB【文档】的一种文档格式。驱动程序在使用【文档】进行插入、查询或其他操作时。会先将【文档】编码成BSON格式,然后发送给服务器。同样地,服务器将文档返回客户端时,也是已BSON格式进行的。驱动程序先对此BSON进行解码然后再传送给客户端。因此,BSON与MongoDB的关系为:MongoDB利用BSON格式存储数据和传输数据

    来源: http://www.cnblogs.com/Khadron/p/MongoDB_Note_1.html

  • 相关阅读:
    ubuntu下 apt-get install 下载的文件存放的目录
    ubuntu 上更新安装 openoffice.org3的过程
    ubuntu中flash的中文乱码解决方法
    ubuntu 安装AMP环境的笔记 Prefork方式与fast-cgi方法
    socket 基础知识
    php 处理透明背景的图片时的问题
    RHEL 8 Speculation
    心之力
    (OK) 在内核中,获得 某目的地址的下一跳的数目,kernel 4.4
    Linux内核分析
  • 原文地址:https://www.cnblogs.com/yxhblog/p/7535413.html
Copyright © 2011-2022 走看看