MongoDB的基本概念

1.文档

相当于RDBMS中的行,是MongoDB的核心概念,多个键及其关联的值有序地放置在一起便是文档。采用BSON(Binary JSON)的表达方式。

例如:{ "greeting": "Hello, MongoDB"}

特点有:

--文档中的键/值对是有序的

--文档在保留JSON基本的键/值对特性的基础上,添加了一些其他的数据类型。

--不同于RDBMS,文档的键区分大小写

--文档中不能有重复的键

键的命名:

--任意UTF-8字符

--键不能包含\0,这个字符表示键的结尾

--.和$为保留字符,只有在特殊环境下才能使用

--开头的_也为保留字符,虽然并未严格要求

2.集合

一组文档,相当于RDBMS中的表,但是没有固定模式。

集合的命名:

--不能是空字符串“”

--键不能包含\0(空字符),这个字符表示集合的结尾

--不能以"system."开头,这个是为系统集合保留的前缀

--用户创建的集合名不能包含$(可以包含.)

子集合

用于组织集合的一种惯例,使用"."字符分开的命名方式对集合进行命名。比如blog.posts和blog.authors,这样做的目的只是为了使组织结构更好些,blog这个集合其实不存在。

3.数据库

多个集合组成数据库,和RDBMS中的数据库概念类似。

一个MongoDB实例可以承载多个数据库,它们之间可视为完全独立的。每个数据库都有独立的权限控制,即便是在磁盘上,不同的数据库也放置在不同的文件中,文件名和数据库名一致。

数据库的命名:

--不能是空字符串""

--不能包含有' '(空格),.,$,/,\和\0

--应全部小写

--最多64字节

MongoDB的数据库

--admin

root数据库,该数据库里的用户拥有所有数据库的权限

--local

这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合

--config

内部使用,用于保存分片的相关信息

命名空间

把数据库的名字放到集合名前面,通过.连接。例如cms.blog.posts。

命名空间的长度不能超过121字节,在实际使用当中应该小于100字节。

4.数据类型

--null

--boolean

--32位整数(Shell不支持这种类型)

--64位整数(Shell不支持这种类型)

--64位浮点数(Shell中的数字都是这种类型)

--字符串

任意的UTF-8字符串

--符号(Shell不支持这种类型)

--对象id

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

MongoDB的文档必须有一个_id键。这个键可以是任何类型的,默认为ObjectId对象。

ObjectId使用12字节的存储空间,每个字节两位十六进制数字,是一个24位的字符串。

0-3   时间戳

4-6   主机标示符,通常为机器主机名的散列值

7-8   PID(进程ID)

9-11 计数器

注:通常由客户端驱动程序生成ObjectId

--日期

存储从标准纪元开始的毫秒数,不存储时区,如果需要可以将时区作为其它键的值存储。

--正则表达式

--JS代码

--二进制数据(Shell不支持这种类型)

--最大值(Shell不支持这种类型)

--最小值(Shell不支持这种类型)

--undefined

--数组

--内嵌文档

5.Shell

MongoDB自带的JavaScript工具,可以从命令行于MongoDB实例交互。

6.参考资料

《MongoDB权威指南》

猜你喜欢

转载自siyuan-zhu.iteye.com/blog/2017558