MongoDB学习笔记-数据格式及数据类型

JSONjavascript

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

BSONjava

    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”  

基本数据类型shell

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()}post

正则表达式:查询时,使用正则表达式做为限定条件,语法与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

相关文章
相关标签/搜索