安装依赖

npm install mongoose

npm install express

删除一条数据:传入id
Model.remove({ _id: 传入的id });
删除多条数据,传入id数组,使用$in方法
Model.remove({ _id: { $in: [‘aID’, ‘bID’] } });

同理,mongoose多个id同时查询,把方法名换为find即可
传入一个id查询一条数据:
Model.find({ _id: 传入的id });
传入多个id,查询多条数据,传入id数组,使用$in方法
Model.find({ _id: { $in: [‘aID’, ‘bID’] } });

  1. // 引入express
  2. const express = require('express');
  3. // mongoose
  4. const mongoose = reqire('mongoose');
  5. const app = express()
  6. // 处理post请求
  7. app.use(express.json())
  8. app.use(express.urlencoded({ extended: false }))
  9. //跨域处理
  10. app.use((req, res, next) => {
  11. res.set('Access-Control-Allow-Origin', '*')
  12. res.set('Access-Control-Allow-Headers', 'content-type')
  13. next()
  14. })
  15. // mongoose 连接 v2_demo是数据库的名字 你可以设置成自己需要的名字 例如:hello abcd 等
  16. mongoose.connect('mongodb://127.0.0.1:27017/v2_demo', {
  17. useNewUrlParser: true,
  18. useUnifiedTopology: true
  19. }).then(() => {
  20. console.log('数据库链接成功')
  21. }).catch(() => {
  22. console.log('数据库链接失败')
  23. })
  24. // 创建一个表结构
  25. var Schema = mongoose.Schema;
  26. var NewSchema = new Schema({
  27. title: { type: String, required: true }, // 标题
  28. abstract: String,// 摘要
  29. content: String,
  30. imgUrl: String,
  31. create_time: { type: Number, default: Date.now()}
  32. });
  33. // new 是表的名称 mongodb 会生成一张 news 的表(末尾会自动加s)
  34. // 下面 基于 New 来操作数据库
  35. var News = mongoose.model('new', NewSchema);
  36. // 查询
  37. // findOne 查询一条数据 find 查询所有数据
  38. // 这两个方法 可以传两个参数 一个参数是查询的条件 第二参数是回调函数
  39. app.post('/newList', async (req, res) => {
  40. let pageNum = req.body.pageNum || 1
  41. let pageSize = req.body.pageSize || 10
  42. const total = await News.find()
  43. // 分页查询 skip 忽略的条数 limit 每页查询的条数
  44. const list = await News.find().skip(pageSize * ( pageNum - 1 ) ).limit(pageSize)
  45. res.send( utils.toast({list, total}) )
  46. })
  47. // 新增
  48. // save 方法 重新 new 一个实例 然后调用save()存进表里面
  49. // 资讯新增
  50. app.post('/newAdd', async (req, res) => {
  51. let { title, abstract, content, imgUrl } = req.body
  52. const news = new News({
  53. title,
  54. abstract,
  55. content,
  56. imgUrl
  57. })
  58. await news.save().then(ress => {
  59. console.log(ress)
  60. })
  61. // res.send({ code: 1, msg: '新增成功', data: {} })
  62. res.send( utils.toast() )
  63. })
  64. // 删除
  65. // remove 删除多条
  66. // deleteOne 删除一条
  67. // 资讯列表 删除
  68. app.post('/newListDelete', (req, res) => {
  69. let id = req.body.id
  70. // 查找并删除
  71. // let result = await News.findByIdAndRemove(id);
  72. // console.log(result)
  73. // if(result) {
  74. // res.send( utils.toast() ); return
  75. // }
  76. // res.send( utils.toast(0, '失败') )
  77. // 封装函数 进行返回
  78. // utils.newDelete(id, res)
  79. // 使用 $in 进行多条数据的查询 或删除
  80. // News.remove( { _id: { $in: ['60bdc7f0a6e47e0bd07230e7', '60bdc6c0a6e47e0bd07230e6'] } } , function (err) {
  81. News.remove({ _id: id }, function (err) {
  82. if(!err) {
  83. res.send( {code: 1, msg: 'success', data: {} } )
  84. } else {
  85. res.send( {code: 0, msg: 'fail', data: {} } )
  86. }
  87. });
  88. })
  89. // 资讯列表 修改
  90. app.post('/newListChange', (req, res) => {
  91. let id = req.body.id
  92. let title = '标题1688'
  93. let abstract = '摘要1688'
  94. // 三个参数 第一个 查找的条件 || 第二个 需要修改的属性 || 第三个 回调函数 看是否有错误
  95. News.updateOne({_id: id}, {title, abstract}, function(err) {
  96. if(err) {
  97. console.log(err)
  98. res.send(err); return
  99. }
  100. res.send({code: 1, msg: '修改成功', data: {}})
  101. })
  102. })