MongoDB
关系型数据库和非关系型数据库
表结构就是关系型
- 表与表之间的关系
- 所有的关系型数据库都需要通过
sql
语言来操作 - 所有的关系型数据库在操作之前都需要设计表结构
- 数据表还支持约束
- 唯一的
- 主键
- 默认值
- 非空
非关系型数据库
- 非关系型数据库非常的灵活
- 有的非关系型数据库就是 key-value 对
MongoDB 是有点像关系型数据库的非关系型数据库
不需要设计表结构,可以任意存放数据,没有结构性一说
- 数据库 -> 数据库
- 数据表 -> 集合(数组)
- 表记录 -> 文档对象
启动和关闭 MongoDB
启动
# mongodb 默认使用执行 mongod 命令所处盘符根目录下的 /data/db 作为自己的数据存储目录
# 首先我们创建一个数据库存储目录 /data/db
sudo mkdir -p /data/db
mongod
如果想要修改默认的存储目录:
# 切换到 mongodb的bin下 分别执行
mkdir ~/data
mongod --dbpath=~/data
停止
在开启服务的控制台,直接 ctrl+c
即可
直接关闭开启服务控制台也可以
连接和退出数据库
连接
# 该命令默认连接本机的 MongoDB 服务
mongo
退出
# 在连接状态下,输入 exit 退出
exit
基本命令
show dbs
查看显示所有数据库
db
查看当前操作的数据库
use name
切换到指定名称的数据库(如果没有会创建)
db.students.insertOne({"name":"Jack"})
在 students 表中插入一条数据
show collections
查看数据库的所有表
db.students.find()
查看 students 表中所有数据
db.students.remove()
删除 students 表中所有数据
在 Node 中操作 MongoDB 数据
使用官方的 mongodb 包来操作
https://github.com/mongodb/node-mongodb-native
使用第三方包 mongoose 来操作
mongoose 基本官方的 mongodb 包再做了一次封装
官网:https://mongoosejs.com/
MongoDB 数据库的基本概念
MongoDB 插入数据时,只需要指定哪个数据库哪个集合直接操作就可以了, MongoDB 会自动完成建库 建表。
- 数据库 - 可以有多个数据库
- 集合 - 一个数据库中可以有多个集合(表)
- 文档 - 结构很灵活,没有任何限制
var MongoDB = {
//数据库
qq: {
//集合
users: [
//文档
{ name: '张三', age: 15 },
{ name: '张三', age: 15 },
{ name: '张三', age: 15 },
{ name: '张三', age: 15 },
],
products: [],
},
taobao: {},
baidu: {},
};