MongoDB数据库的连接与增删改查

MongoDB数据库的连接与增删改查

Express+Mongodb的安装细节 可见https://blog.csdn.net/qq_44429079/article/details/109739293

  1. 首先创建一个express项目
    目录如下:在这里插入图片描述
  2. 创建model文件夹,在此文件夹下创建一个index.js 用于进行数据库的连接操作
  • 创建schema,对集合进行约束
  • 创建model,这样才能进行增删改查操作
  • document

index.js 代码如下:

// mongoose 数据库连接
const mongoose = require('mongoose');
//1. 创建schema模式(约束)对象 是对集合进行约束的
//  mongoose.Schema赋值给Schema
var Schema = mongoose.Schema

mongoose.connect('mongodb://localhost/test',{
    useUnifiedTopology:true,
    useNewUrlParser:true
});
//使用connection监听数据库的状态
mongoose.connection.once('open',function(){
    console.log('数据库连接成功')
});
mongoose.connection.once('close',function(){
    console.log('数据库已断开')
});


//学生表的格式 约束信息
var studentSchema = new Schema({
	name: String,
	age: Number
});
//定义学生操作器
// 2.通过Model次才能对数据库进行操作(增删改查
// mongoose.model(modelName, Schema); modelName就是要映射的集合名
var StudentModel = mongoose.model('students', studentSchema);

module.exports={
	StudentModel
}


  1. 在routes下有两个js文件
    在这里插入图片描述
    index.js用于对数据库的操作
var express = require('express');
const { StudentModel } = require('../model');
var router = express.Router();

var model = require('../model')
/* GET home page. */
// router.get('/', function(req, res, next) {
//   res.render('index', { title: 'Express' });
// });


router.get('/addStudent',function(req,res,next){
  console.log('请求携带的参数为',req.query)
  let query = req.query;
  //这里接到请求后会打印 query就是你地址后携带的数据
  //req.query的结构自定义,在地址后携带
  //向数据库中插入一个文档
  // 需要两个参数 StudentModel.create({doc(s)},callback()}
  // 用来创建一个或多个文档并添加到数据库中 
  // 参数:doc(s)可以是一个文档对象,也可以是一个文档对象的数组
  // callback是当操作完成后调用的回调函数
  StudentModel.create({
    name:query.name,
    age:query.age
  },function(err){
    if(!err){
      console.log('数据库操作成功')
      res.send(`新增学生成功!姓名为${query.name}`);
    }
  })
});

router.get('/removeStudent',function(req,res,next){
  console.log('请求携带的参数为',req.query)
  let query = req.query
  StudentModel.find(query,(err,docs)=>{
    if(!err){
      console.log('数据库操作成功')
      console.log('查询',docs)
      res.send('查询成功'+docs)
    }
  })
});
router.get('/removeStudent',function(req,res,next){
  console.log('请求的参数为',req.query)
  let query = req.query
  StudentModel.remove(query,(err,docs)=>{
    if(!err){
      console.log('数据库操作成功')
      res.send('删除成功')
    }
  })
})


module.exports = router;

users.js中

var express = require('express');
var router = express.Router();
var model = require('../model')
/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;

4.运行
项目完成后执行下npm install,他会自动把项目预设的插件装进去,然后再装mongoose和nodemon
使用npm start运行
运行后:
在这里插入图片描述
req.query的结构自定义,在地址后携带,所以插入数据在这里插入图片描述
这时候我们可以打开数据库发现我们新增的数据了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值