MongoDB
下载、安装
启动
安装好 MongoDB 的服务器,并成功启动服务器后,就可以在项目中使用 MongoDB 数据库了。
通常 MongoDB 服务器会开机自动启动,如果没有自动启动的,我们可以自己手动去开启,启动步骤如下:
鼠标右键【此电脑】-【管理】-【服务器和应用程序】-【服务】-【MongoDB Server】-【启动】
数据库可视化工具-Navicat
下载
链接:https://pan.baidu.com/s/1f1FJMwqJl5dKL5ZDCSlLXA
提取码:jajg
安装
数据库
一个 MongoDB 数据库中可以新建多个数据库,通常都是一个独立的项目对应着一个数据库。
数据库与数据库之间不能互相进行访问,每一个数据库之间都是独立的。
集合
每一个数据库中又可以新建多个集合,每一个集合,都对应着一个类型的数据。针对不同类型的数据,我们就需要创建不同的集合。
操作数据库
一、下载 mongoose 插件
在项目根目录执行以下命令下载 mongoose 插件:
npm i mongoose
二、连接数据库
将 express 后端项目与 MongoDB 数据库连接上。
在后端 express 项目根目录,创建一个 dao 目录,在 dao 中再创建一个 db.js:
// 连接项目与数据库const mongoose = require('mongoose');// 数据库的名称(数据库不用提前创建)mongoose.connect('mongodb://localhost:27017/数据库的名称', () => {console.log('数据库连接成功');})
在 app.js 中引入该文件,让代码运行。
// 引入 npm 下载的,或者引入Node.js内置的模块var createError = require('http-errors');var express = require('express');var path = require('path');var cookieParser = require('cookie-parser');var logger = require('morgan');require('./dao/db.js');
三、配置数据集合
每当后端需要对一个新的数据集合进行操作时,都需要先对该集合进行配置。
在 dao 中创建一个 models 目录,用来存放所有数据集合的模型。
dao|--- models|--- db.js
例如我们当前要处理“考试分类” types 集合,就在 models 目录中创建一个 typesModel.js文件:
const { Schema, model } = require('mongoose');// 定义该集合中每一条数据的格式(这里不需要自己定义 _id)const typesSchema = new Schema({type: String,icon: String}, { versionKey: false })// 设置数据库的集合名称module.exports = model('typesModel', typesSchema, 'types');
model方法参数说明:
- 第一个参数:自定义的数据模型名称;
- 第二个参数:前面定义数据结构得到的 schema 变量名;
- 第三个参数:对应的数据库当前集合的名称(集合不需要提前数据库中创建)
四、操作数据库
所有操作数据库的方法,都是数据模型 model 提供的。因此要操作数据库中的某一个集合,需要先引入对应的对应的数据集合配置文件,并获取到 model。
例如我们要获取数据库中 types 集合中的所有数据,在/routes/types.js中引入/dao/models/typesModel.js文件,并接收到 typesModel:
然后在对应的函数中调用 model 的方法,操作数据库:const typesModel = require('../dao/models/typesModel');
由于操作数据库的方法返回的结果都是 Promise 对象,因此在接收结果时都用 async await 来接收。最后通过router.get('/getTypes', async function (req, res, next) {// 获取数据const data = await typesModel.find();// 将处理结果返回给前端res.send({message: '考试分类数据获取成功',code: 1,data: data});});
res.send()方法将结果返回给前端。mongoose 常用方法
Mongoose中文文档
