《MongoDB权威指南》学习整理----MongoDB中的基本数据类型
2014-02-19 16:42
344 查看
MongoDB数据类型介绍
monggoDB中的数据都存储在文档中,传输、存储方式使用了类似于JSON称为BSON的数据格式,但数据类型更加丰富,下面对mongodb中的数据类型以及类型在shell中的处理进行说明:Null
用于表示空或者不存在的数据。例如:{'x':null}
Boolean
通用的布尔类型,true或者false.例如:{'x':false}
32位整数
在shell中没有此类型,java中有interger。shell会自动转换该类型为64位整数。
64位整数
shell中没有此类型,shell使用一个特殊的内嵌文档来表示64位整数。此类型的数据在shell中查看的时候,当可以正确的使用64位浮点数表示时,就直接使用数字表示;如果不能使用64位浮点数正确表示,mongodb的内嵌文档会表示此数据。例如9223372036854775807在shell中的表示为:
db.nums.findOne()
{
"_id":ObjectId("xxxxxxxxx"),
"myInteger":{
"floatApprox":9223372036854775807,
"top":2147483647,
"bottom":4294967295
}
}
注意,如果用shell编辑更改后,该数字会变成64位浮点数。
64位浮点数
shell中所有的数字都是该类型。由于shell中只支持此类型而mongoDB支持3中数字类型,那么当mongodb中的32/64位整数在shell中操作后,使用shell再次存入到mongodb中时,所有的数据类型都会转化为64位浮点数。所以最好不要轻易的在shell中对数字进行修改操作。
字符串
最常见的数据类型之一。
符号
shell中不支持该类型,会自动转化为字符串
对象id
对象id是文档的12字节的唯一ID。每个集合中只能有唯一的objectId。12字节的意义:
前4字节是从标准纪元开始的时间戳,4-6字节表示机器名的散列值,7、8字节表示进程ID,后边3个字节表示计数器
日期
日期类型存储的是从标准纪元开始的毫秒数,没有时区。使用new Date('xxxx')来创建日期对象,而不是Date('xxxx')。同时,在mongoDB中存储的日期类型是没有时区的,如果需要,添加一个新的键来表示时区。
正则表达式
与JS中的正则表达式相同。
代码
文档中可以保存JS代码。
二进制数据
可以任意存储二进制数据,但是在shell中无法使用
最大值
文档中的特殊类型,shell中无法使用。
最小值
文档中的特殊类型,shell无法使用。
未定义
也就是JS中的undefined,注意,和JS中一样null和undefined是不一样的。
数组
值的集合或者列表可以表示成数组,如同所有的弱类型语言,python、php、js,数组元素可以是不同类型的对象。例如:{'x':['a','b','c']}
内嵌文档
文档可以包含别的文档,也可以作为值嵌入到父文档中。例如:{'x':{'foo':'bar'}}
不同数据类型的比较
由于MongoDB中不同文档的同一个key的value数据类型可以不同,当我们根据某个key查询的时候会发生不同数据类型之间的比较。所以MongoDB内部设定了数据类型间的大小,顺序如下:最小值<null<数字(32位整数、63位整形、64位浮点数)<字符串<对象/文档<数组<二进制数据<对象ID<布尔型<日期型<时间戳<正则<最大值
相关文章推荐
- MongoDB学习(二):数据类型和基本概念
- MongoDB学习(一):数据类型和基本概念
- [转载]MongoDB学习(二):数据类型和基本概念
- MongoDB学习整理(三)--数据类型介绍
- MongoDB学习(二):数据类型和基本概念
- MongoDB学习(二):数据类型和基本概念
- 《MongoDB权威指南》学习整理----MongoDB简介及基本概念
- MongoDB学习(二):数据类型和基本概念
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第20讲_js基本数据类型_js运算符1_学习笔记_源代码图解_PPT文档整理
- MongoDB入门学习(二):MongoDB的基本概念和数据类型
- MongoDB学习:数据类型和基本概念
- MongoDB入门学习(二):MongoDB的基本概念和数据类型
- VB 学习整理1 基本概念 数据类型
- Python学习笔记一:数据类型与基本操作
- Mongodb基本数据类型、常用命令之增加、更新、删除
- Python学习笔记 day02 基本数据类型
- Java基本数据类型与对应的包装类(动力节点java学院整理)
- C语言学习笔记:01_基本数据类型
- MySQL学习整理之数据库表基本操作
- Python学习 第4天 基本语法-变量、数据类型、运算符、流程控制