mongoose 增删改查

// 导入express框架
const express = require('express')

// 实例化express对象
const app = express()

// 连接mongodb数据库
// 导入mongoose模块,用来操作mongdb数据库
const mongoose = require('mongoose')

// connect('连接地址') 连接数据库的方法
mongoose.connect('mongodb://localhost:27017/user')

// 监听连接成功或失败的方法
const db = mongoose.connection
db.on('open',()=>{console.log("数据库连接成功")})
db.on('error',()=>{console.log('数据库连接失败')})

// 一般数据库里都会存在用来存储信息的图表对象模型
// 创建一个图表对象
var Schema = mongoose.Schema
// 实例化图表对象模型,要做图表中定义好属性字段
var msgSchema = new Schema({
    username:String,
    message:String
})
// 根据创建好的图表对象模型,创建一个当前图表的模型,用来操作mongodb数据库的
// mongoose.model('数据库的表名',绑定的图表对象模型)
// 当前Msg就是用来操作mongodb数据库中的数据的对象
var Msg = mongoose.model('userMessage',msgSchema) 

// 创建一个接口,用来存储数据信息(数据添加)
app.get('/save',(req,res)=>{
    // 通过get请求传递参数req.query对象来接收参数
    console.log(req.query)
    // res.send(req.query)
    // 将传递过来的参数,在实例化的图表对象模型中进行mongodb数据库的对象化
    // 将数据存储到数据库之前,数据库里每一条数据都是由特定的id,所以我们要通过实例化的这种方法
    // 在存储数据之前,给每个数据加上一个id,方便后面的数据库操作(更改,删除)
    let msg = new Msg({
        username:req.query.username,
        message:req.query.message
    })
    // res.send(msg)
    // save方法是调用实例化的图表模型中保存数据的方法,将数据存储到数据库中的指定图表上
    msg.save().then(()=>res.send({code:200,msg:"数据保存成功"}))

})

// mongodb数据查找
app.get('/list',(req,res)=>{

    // 查找当前数据表的所有数据
    // Msg.find({}).then(data=>{
    //     res.send(data )
    // })

    // 精确查找 查找指定字段
    // Msg.find({username:req.query.username}).then(data=>{
    //     console.log(data)
    //     res.send(data)
    // })

    // 模糊查询
    let content = {} //查询条件
    // $regex mongodb中自带的模糊查询(根据正则进行判断)
    content.username = {$regex:req.query.username}
    Msg.find(content).then(data=>{
        res.send(data)
    })
})

// mongodb数据删除
app.get('/delete',(req,res)=>{
    
    // remove() 根据所传入的条件,删除数据库中所有符合条件的数据
    Msg.remove({username:req.query.username}).then(data=>{
        res.send({code:200,msg:"删除成功"})
    })
})

// mongodb 数据修改
app.get('/update',(req,res)=>{
    // updateOne(查找条件的对象,需要修改的字段),修改一条数据
    Msg.updateOne({username:req.query.username},{message:req.query.message}).then(data=>{
        res.send({code:200,msg:'数据更改成功'})
    })
})


// 端口监听
app.listen(3000,()=>{
    console.log('server is running 3000')
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值