基本概念
文档时MongoDB中数据的基本单元,是MongoDB的核心概念,很类似关系数据库中的行(记录)
集合可以被看作没有模式的表(表)
MongoDB每个实例都可容纳多个独立数据库,每个数据库都有自己的集合和权限(数据库)
文档
多个键及其关联的值有序地放置在一起就是文档
单键值文档{“userName“:”BBS11“}
多键值文档{ "_id" : ObjectId("58097dfe7e6d64baca852729"), "name" : "test", "add" : "china" }
文档中的值不仅可以是字符串,也可以是其他数据类型(或者嵌入其他文档)
键是字符串,键可以使用任意UTF-8字符
键不能含有\0(空字符),空字符表示键的结尾
和$作为保留字符,通常不应该出现在键中
以下划线“_”开头的键通常情况下是保留的
MongoDB不但区分数据类型,也区分大小写
{“user”:“11”}与{“user”:11}不同,{“User”:“11”}与{“user”:“11”}也不同
文档中不允许有重复的键。{“user”:“11”,“user”:“12”}非法
集合
集合就是一组文档,与关系数据库的表可类比
集合是无模式的。MongoDB对模式不做强制要求,有开发者灵活把握
命名规则:
1.集合名不能是空串“”
2.不能含有空字符\0
3.不能以“system.”开头,这是系统集合保留的前缀
4.集合名不能含保留字符$
组织集合的一种习惯是以. 分开,近命名空间划分子集合,列如system.Users,system.indexes
数据库
多个集合组成数据库
一个MongoDB实例可承载多个数据库,互相之间彼此独立
开发中通常将一个应用的所有数据存放到同一个数据库中
磁盘上,MongoDB将不同数据库存放在不同文件中
命名规则:
- 数据库名是utf-8字符串,最长64个字符
- 不能是空字符串
- 不能含“ 、 . $ / 和\0
- 应全部小写
系统保留数据库
- admin:这是root数据库,添加用户到该数据库中,该用户会自动继承所有数据库权限
- local:这个数据库中的数据永远不会被复制,可以用于存储限于本地数据单台服务器的任意集合
- config:分片时,config数据库在内部使用,保存分片信息
把数据库名放集合名钱,得到的就是集合的完全限定名称,叫命名空间。命名空间长度不能超过121字节,实际使用应小于100字节