设为首页 加入收藏

TOP

MongoDB入门学习(二):MongoDB的基本概念和数据类型(二)
2015-07-24 10:23:59 来源: 作者: 【 】 浏览:2
Tags:MongoDB 入门 学习 基本 概念 数据 类型
0.078GB test 0.078GB

db.dropDatabase()删除使用的数据库,db.people.drop()删除people集合。这些API用起来都很简单。

4.数据类型

MongoDB有着非常丰富的数据类型,如上面的name字段是字符串,age字段是数字,当然不止这两种。JSON只有6中数据类型,null,布尔,数字,字符串,数组和对象。MongoDB在JSON的基础上添加了一些其他的数据类型,下面来看看MongoDB的数据类型:

null:用于表示控制或者不存在的字段,如:{"x" : null}。

布尔:只有两个值true和false。

32位整数:shell中这个类型不可用,java script仅支持64位浮点数,所以32位整数会被自动转换。

64位整数:shell中这个类型不可用,shell会使用一个特殊的内嵌文档来显示64位整数。

64位浮点数:shell中的数字都是这个类型,{"x" : 3.14}和{"x" : 3}都是浮点数。

因为java script只有一种数字类型就是64位浮点型,所以MongoDB中从shell的来的数字都被当做64位浮点型,而MongoDB中支持三种数字类型,所以用shell修改过数据库中的数据后都会被转换成64位浮点型。64位整数并不能精确的表示64位浮点型,如果MongoDB中存入了一个64位整数,在shell中查看时,如果能够表示64位浮点型那就用一个键的内置文档显示而且这个值是精确的,否则,他会显示一个多键内嵌文档,表示可能不精确。

如果是64位整数3,那么在shell中查询显示会是这个样子:

db.nums.findOne()
{
? ? ? ??"_id" : ObjectId("4c0beecfd096a2580fe6fa08"),
? ? ? ??"myInteger" : {
? ? ? ??? ? ? ??"floatApprox" : 3
    }
}

如果是64位整数9223372036854775807,那么在shell中查询显示会是这个样子:

db.nums.findOne()
{
        "_id" : ObjectId("4c0beecfd096a2580fe6fa08"),
        "myInteger" : {
                "floatApprox" : 9223372036854775807,
                "top" : 2147483647,
                "bottom" : 4294967295
    }
}

top和bottom分别表示高32位和低32位。

字符串:UTF-8字符串都可表示为字符串类型的数据,如:{"name" : "Mary"}。

符号:shell不支持这种类型,shell会将数据库中的符号类型转换成字符串。

对象id:对象id是文档的12字节的唯一ID。

MongoDB中存储的文档必须有一个键"_id",这个键可以是任意类型的,默认是ObjectId对象,当我们存入文档时不指定该键,那么MongoDB会自动添加这样一个键值对,这个值是唯一标识,ObjectId使用12字节的存储空间。

日期:日期类型存储的是从标准纪元开始的毫秒数,不存储时区,如:{"x" : new Date()}。

java script中Date对象用作MongoDB的日期类型,创建日期对象要用new Date()而不是Date(),返回的是对日期的字符串表示,而不是真正的Date对象。

正则表达式:文档中可以包含正则表达式,采用java script的正则表达式语法,如:{"x" : /foobar/i}。

代码:文档中还可以包含java script代码,如:{"x" : function(){/*...*/}}。

二进制数据:二进制数据可以由任意字节的串组成,不过shell中无法使用。

最大值:BSON包括一个特殊类型,表示可能的最大值,shell中没有这个类型。

最小值:BSON包括一个特殊类型,表示可能的最小值,shell中没有这个类型。

未定义:文档中也可以使用未定义类型,如:{"x" : undefined}

数组:值的集合或者列表可以表示成数组,数组中的元素可以是不同类型的数据,如:{"x" : ["a", "b", "c", 20]}。

内嵌文档:文档可以包含别的文档,也可以作为值嵌入到父文档中,如:{"x" : {"foo" : "bar"}}。

在我目前用的情况,布尔,数字,字符串,日期,数组和内嵌文档是用的最多的。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇笔试面试那件小事(数据库概念知.. 下一篇Dropgoldengate用户时报ORA-00604..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)