# 使用 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
时对应的集合名称并不存在,会直接创建对应的集合。