关系数据库 | MongoDB |
---|---|
数据库 database | 数据库 database |
表格 table | 集合 collection |
行 row | 文档 document |
列 column | 字段 field |
索引 index | 索引 index |
表联合 table joins | 嵌入文档 |
主键 primary key | 主键 primary key 。MongoDB 默认主键为 _id |
id | name | age | score |
1 | 张三 | 20 | 90 |
2 | 李四 | 21 | 95 |
{ "_id":ObjectId(.......), "name":"张三", "age":20, "score":90 } { "_id":ObjectId(.......), "name":"李四", "age":21, "score":95 }
一个MongoDB中能够创建多个数据库,这些数据库是相互独立的,有本身的集合和权限。不一样的数据库使用不一样的文件存储(不存储在一个文件中)。数据库
MongoDB默认有4个数据库:服务器
数据库名要所有小写。app
即一个键值对,key必须是String类型,value能够是任意类型。dom
文档是一组键值对,用{ }表示,字段之间用逗号分隔。至关于关系数据库中的一行(一条记录)。性能
示例:一个文档spa
{日志
"name":"张三",code
"age":20,blog
"score":98继承
}
这样写是为了方便看字段,也能够写在一块儿{"name":"张三","age":20,"score":98},同样的。
说明:
集合是一组文档。集合至关于关系数据库中的表,但集合中的文档长度可不一样(集合中的文档中的键值对个数可不一样)、集合中文档的key可不一样。
向集合中插入第一个文档时,集合会被自动建立。
示例:一个集合
{ "name":"张三", "age":20 } { "name":"李四", "age":15 } { "name":"王五", "age":20 }
示例:集合中的文档长度可不一样
{ "name":张三", "age":20 } { "name":"李四" } { "name":"王五", "age":20, "score":98 }
示例:集合中文档的key不一样
{ "name":"张三", "age":20, "score":90 } { "domain":"www.baidu.com", "ip":"127.23.45.50" }
虽然能够这样,但集合中的文档通常是有关联的。
说明:
普通collection没有指定空间大小,可存储无限多个文档。
capped collection是指定了空间大小的collection,这个collection的大小是有限的,超出这个大小,就不能再存储文档了。
capped,有上限的、封顶的、盖住的、包住的。
和普通 collection 不一样,capped collection必需要显式建立,建立时要指定数据存储空间空间大小。
db.createCollection("mycoll", {capped:true, size:100000})
第一个参数是集合名称,capped指定是不是capped collection,size指定这个capped collection的数据存储空间的大小,默认单位字节。
说明:
capped collection 不能删除一个文档,但可使用 drop() 方法删除全部文档。
capped collection有很高的性能以及队列过时的特性(过时按照插入的顺序)。
capped collection 会高性能地、自动地维护文档的插入顺序,很是适合相似记录日志的功能。
capped collection 是按照文档的插入顺序而不是使用索引肯定插入位置,提升了增添数据的效率。
capped collection 是按照文档的插入顺序保存到集合中的,而这些文档在磁盘上存放位置也是按照插入顺序来保存的,因此当咱们更新capped collection 中文档的时候,更新后的文档不能超过以前文档的大小,这样话就能够确保全部文档在磁盘上的位置一直保持不变。