# 使用 Mongodb
首先说一下 Mongodb 的三个层级:数据库(datebase)、集合(collection)、文档(document)
对比 mysql的话,两者的层级概念对应关系大概如下:
| 数据库 | 层级 1 | 层级 2 | 层级 3 |
|---|---|---|---|
| mysql | database | 表 | 一行数据 |
| mongodb | database | 集合 | 文档 |
# Compass 中的体现
之所以说 Mongodb 可以存储松散类型的数据。如下,在同一个集合中,每个文档存储的数据类型都可以不同:

# Mongodb 命令
在通过 brew services start mongodb-community 启动 mongodb 数据库后,输入 mongo 回车即可进入命令行工具。
show dbs展示全部的数据库use 数据库名称使用或创建一个数据库,如果名称对应的数据库不存在就创建一个;否则就使用指定的数据库show collections展示当前数据库的全部集合db.集合名称.insert({})在某个集合中插入数据内容db由于对集合操作时,就已经进入某一个数据库中。所以 db 是一个统称,表示当前数据库集合名称就写对应的集合即可,比如db.blogs指的是该数据库下的blogs集合insert({})就是插入行为了,由于文档是一个json数据形式,所以正常写入json数据结构即可
db.集合名称.find({ 条件key: 条件value })过滤某个集合中数据内容db、集合名称和上述相同find()是查询行为,不传入参数表示查询全部数据- 筛选条件也是
json形式,如db.blogs.find({"author": "zhangsan"})
db.集合名称.update({ 条件key: 条件value }, {$set: { "更新 key": "更新的 value" } })更新某个集合数据db、集合名称和上述相同update()是更新行为参数1一个json参数2更新的内容, 一个json,$set为 key,value 是更新的json数据
db.集合名称.remove({ 条件key: 条件value })删除操作sort({ 条件key: 条件value })排序 操作,比如db.users.find().sort({ _id: -1 })就是针对_id做倒序排序
TIP
db.集合名称.insert() 操作还有创建集合的作用,如果执行 insert 时对应的集合名称并不存在,会直接创建对应的集合。