zoukankan      html  css  js  c++  java
  • mongodb数据类型

    参考:

    https://my.oschina.net/hfq/blog/1814731 (数据格式和数据类型)

    https://docs.mongodb.com/manual/reference/bson-types/ (官方文档)

    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格式存储数据和传输数据

    实例

    db.getCollection('STOCK_INFO').insert(
    {
        marketno:'2',
        stockno:'600055',
        stock_name:'万东医疗',    
        issue_price:8.5400,//默认就是64为浮点型数值,存储到数据库后为8.54 ,后面2个0去掉了
        quantity:NumberInt(15000000),//使用整型值。如果不加NumberInt函数,则存在数据库里面会带小数位    
        list_market:'上海证券交易所',    
        circ_trade_kind:'03',
        industry_no:'c73',
        created_by:'system',
        updated_by:'system',
        list_date:Date('1997-05-19'),//String类型 ,值为:Fri May 18 2018 11:39:34 GMT+0800
        issue_date:new Date('1997-04-18'),//Date类型,值为:1997-04-18 00:00:00.000Z ,指定了日期,跟存入数据库一致。没有影响
        created_date:ISODate('2016-06-17 13:55:18.000Z'),  //Date类型,值为:2016-06-17 13:55:18.000Z ,跟准备的值一致,跟new Date比,最好用这个
        delete_date:new Date('1997-04-18 10:33:12.000z'),//Date类型,值为:1970-01-01 00:00:00.000Z ,这个变为1970了,肯定错误了,不能用
        select_date:ISODate('1997-04-18'),//Date类型 ,值为:1997-04-18 00:00:00.000Z.跟new Date比,最好用这个
        updated_date:new Date(),//Date类型,值为当前系统时间,例如:2018-05-18 03:39:34.868Z ,是新纪元依赖经过的毫秒数,不存储时区.比电脑上显示的北京实际时间少8个小时    
    
     test_date:ISODate(),//Date类型,跟new Date()效果一样,但最好用ISODate。值为当前系统时间,例如:2018-05-18 03:39:34.868Z ,是新纪元依赖经过的毫秒数,不存储时区.比电脑上显示的北京实际时间少8个小时 
        assortment_id:'1'
    }
    );
  • 相关阅读:
    [HNOI 2010]Bus 公交线路
    [HNOI 2010]Planar
    [HNOI 2010]chorus 合唱队
    定时器 @Scheduled定点启动
    mysql后获取时间
    kafka基本原理
    cron定时表达式
    自定义导出
    java指定年月的天数和周数<br>
    Date和Calendar时间操作常用方法及示例
  • 原文地址:https://www.cnblogs.com/tkzc2013/p/15015673.html
Copyright © 2011-2022 走看看