基础概念
MongoDB 是非关系型数据库,也就是nosql,存储json数据格式会非常灵活,要比mysql更好,同时也能为mysql分摊一部分的流量压力。另外呢,对于非事务的数据完全可以保存到MongoDB中,这些数据往往也是非核心数据。
以下是MongoDB和数据库以及ElasticSearch的术语对比:
数据库 | ElasticSearch | MongoDB |
---|---|---|
database | es库 | database |
table 表 | index 索引 | collection 数据集合 |
row 行(记录) | document 文档(json) | document 文档(json) |
column 字段列 | field 域 | field 域 |
index 索引 | - | index 索引 |
join 表关联查询 | - | - |
pk 主键 | _id | _id |
- MongoDB可以创建多个数据库(同mysql)
- 一个数据库可以创建多个collection(同mysql创建多表)
- 一个集合可以包含很多文档数据(同mysql一张表包含很多行记录)
我们可以通过如下代码片段来更好的理解MongoDB的数据对比,假设这张表中总记录有3条:
UserList: [
{
userId: "1001",
username: "lee",
age: 18,
sex: "boy"
},
{
userId: "1002",
username: "jay",
age: 20,
sex: "boy"
},
{
userId: "1003",
username: "jolin",
age: 19,
sex: "girl"
}
]
如上述代码中:
- UserList是一个
collection
,在mysql中可以当做是一张表 - UserList中的每个
{}
都是一个json对象,他们称之为document文档
,在mysql中称之为行记录 - userId、username、age、sex 这些都是
field 域
,在MySQL中称之为column列字段