Table of Contents
2.5 将mongodb设置为系统服务,自动在后台启动,不需要手动启动
0. 学习资料
教程:http://www.runoob.com/mongodb/mongodb-tutorial.html
视频教程:https://www.bilibili.com/video/av47425352?from=search&seid=15261718310651163939 5h
教程:https://mongoosejs.com/docs/api.html#query_Query-find
https://docs.mongodb.com/manual/tutorial/update-documents/
1. 安装MongoDB和可视化工具
1.1 安装MongoDB
- cd /usr/local #进入目录
- sudo curl -0 https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz #下载
- sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz
1.2 安装MongoDB可视化工具
- adminmongo: https://blog.csdn.net/zssapple/article/details/82869648
- NoSQL Manager
- Studio 3T
2. 数据库简介
2.1 数据库分类
- 关系型数据库 - RDBMS:MySQL,Oracle,DB2,SQL server
- 非关系型数据库 - NoSQL:(Not only sql) MongoDB,Redis
- 键值对数据库 Redis
- 文档数据库 MongoDB
2.2 mongodb简介
- MongoDB是为快速开发互联网web而设计的数据库系统
- 设计目标:简单、灵活、作为web应用栈的一部分
- MongoDB是面向文档的,所谓文档是一种类似于JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSOn (BSON)。
2.3 MongoDB三个概念
- 数据库Database: 数据库是一个仓库,在仓库中可以存放集合
- 集合collection:集合类似于数组,在集合中可以存放文档
- 文档document:文档数据库中的最小单位,我们存储和操作的内容都是文档
在MongoDB中,集合和数据库不需要我们自己创建,MongoDB会自动帮我们创建。
2.4 安装MongoDB:
- 下载:偶数版本为稳定版,技术版本为开发版
- 配置环境变量:
- 启动:
- 命令行打开
- >>mongo 连接mongo DB
- >> mongod 启动mongoDB服务
- >>mongod --dbpath mypath 启动数据库,把指定路径作为mongodb存储路径
- --port 指定端口
- 命令行打开
- 数据库
- 数据库服务器 --服务器保存数据
- 命令:mongod
- 数据库客户端 --操作服务器,对数据进行增删改查
- 命令:mongo
- 数据库服务器 --服务器保存数据
2.5 将mongodb设置为系统服务,自动在后台启动,不需要手动启动
- MacOS: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/
- Run in foreground: mongod --config /usr/local/etc/mongod.conf
- Run as a macOS service: brew services start mongodb-community@4.0
2.6 MongoDB基本指令
- show dbs - 显示所有的数据库
- use mydb - 进入指定数据库
- show dbs - 显示所有的数据库
- db - 显示当前数据库
- show collections- 显示当前数据库有哪些集合
2.7 MongoDB数据库的CRUD操作
- 向数据库中插入文档: db.<collection>.insert(<doc>)
- 例如向test数据库中,stus集合中插入一个新的学生对象
- db.stus.insert({"name":"Emma","age":"18"})
- 查询当前集合中的所有文档:db.<collection>.find()
3. Mongoose简介
Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的封装和优化,并提供了很多的功能。 在大多数情况下,它被用来把结构化的模式应用到一个MongoDB集合,并提供了验证和类型转换的好处。
- 好处:
- 可以为文档创建一个模式结构 Schema
- 可以对模型中的对象/文档进行验证
- 数据可以通过类型转换转换为对象类型
- 可以使用中间件来应用业务逻辑挂钩
- 新的对象
- Schema(模式对象):Schema对象定义约束了数据库中的文档结构
- Model:Model对象作为集合中的所有文档的表示,相当于MongoDB数据库中的集合collection
- Document:Document表示集合中的具体文档,相当于集合中的一个具体文档