mongoose的增删改查

mongodb可视化工具

robomongo

接口测试

vscode中可以安装插件rest client
rest client使用:在根目录下新建后缀名为http的文件,每个请求路径用###分开

也可以自行下载postman

数据库连接

在node中使用mongodb需要用到mongoose
安装mongoose

npm i mongoose
const express = require('express')
const app = express() //返回一个应用实例

const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/数据库名字')
//需要定义模型(类似表)一般大写 
const Product = mongoose.model('Product ',new mongoose.Schema({
	title:String,
}))
app.get('/products',async(req,rea) => {
	//每一次的查询都是异步操作
	res.send(await Produce.find())
})
//开启监听器
app.listen(3000,() => {
	console.log('ok..')
})
增加

Model.create(doc(s),[callback])

app.post('/categories', async (req, res) => {
    const model = await Category.create(req.body)
    res.send(model)
  })
删除

Model.remove(conditions, [callback])
Model.findByIdAndRemove(id, [options], [callback])

//删除
app.delete('/categories/:id', async (req, res) => {
    await Category.findByIdAndRemove(req.params.id)
    res.send('删除成功')
})
修改

Model.update(conditions, doc, [options], [callback])
Model.findByIdAndUpdate(id, doc, [options], [callback])

  //patch是部分修改 put是整个覆盖都可
  app.put('/categories/:id', async (req, res) => {
    //id参数来自req.params.id
    const model = await Category.findByIdAndUpdate(req.params.id,req.body)
    //把查到的数据发送给前端
    res.send(model)
  })
查询

查询多条

Model.find(conditions, [projection], [options], [callback])

  • limit():限制查询条数
  • skip():跳过几条
    通常使用x.find().skip(xx).limitxx()进行分页处理
  • where({}):指定查询条件
  • sort({}):排序 1为正序 -1为倒序

查询单条

Model.findById(id, [projection], [options], [callback])

  app.get('/categories/:id', async (req, res) => {
    //id参数来自req.params.id
    const data= await Category.findById(req.params.id)
    //把查到的数据发送给前端
    res.send(data)
  })
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值