首页 > 其他 > 详细

mongoose增删改查

时间:2020-04-19 00:11:45      阅读:56      评论:0      收藏:0      [点我收藏+]

http://www.mongoosejs.net/docs/api.html#findoneandupdate_findOneAndUpdate

Model的API使用

保存内容到数据库 save()

查询所有内容 find()

查询指定内容 findOne()

修改指定条件的数据 findOneAndUpdate()

删除指定条件的数据 findOneAndRemove()

 

findOneAndUpdate()参数说明

技术分享图片

 

 技术分享图片

 

// 路由—— 资金流水
const express = require(‘express‘);
const router = express.Router();
// 引入 解析token令牌的 passport 库
const passport = require(‘passport‘);
//引入Profile数据库操作模型
const Profile = require(‘../../models/Profile‘);


// @route  GET api/profiles/test
// @desc   返回的请求的json数据
// @access public
// router.get(‘/test‘, (req, res) => {
//   res.json({ msg: ‘profile works 测试‘ });
// });

// @route  POST api/profiles/add
// @desc   创建信息接口
// @access Private
router.post( ‘/add‘, passport.authenticate(‘jwt‘, { session: false }), (req, res) => {
    const profileFields = {};

    if (req.body.type) profileFields.type = req.body.type;
    if (req.body.describe) profileFields.describe = req.body.describe;
    if (req.body.income) profileFields.income = req.body.income;
    if (req.body.expend) profileFields.expend = req.body.expend;
    if (req.body.cash) profileFields.cash = req.body.cash;
    if (req.body.remark) profileFields.remark = req.body.remark;
    // 将重构好的数据 通过 Profile 模型 添加到数据库 ,成功则向前端返回数据
    // 保存数据的方法 save()
    new Profile(profileFields).save().then(profile => {
      res.json(profile);
    }); }
);

// @route  GET api/profiles
// @desc   获取所有信息
// @access Private

router.get( ‘/‘, passport.authenticate(‘jwt‘, { session: false }), (req, res) => {
    // mongoose中module的 查询全部数据的方法 find
    Profile.find()
      .then(profile => {
        if (!profile) {
          return res.status(404).json(‘没有任何内容‘);
        }

        res.json(profile);
      })
      .catch(err => res.status(404).json(err));
  }
);

// @route  GET api/profiles/:id
// @desc   获取单个信息
// @access Private

router.get(
  ‘/:id‘,
  passport.authenticate(‘jwt‘, { session: false }),
  (req, res) => {
    // 查询符合条件的一条数据的方法
    Profile.findOne({ _id: req.params.id })
      .then(profile => {
        if (!profile) {
          return res.status(404).json(‘没有任何内容‘);
        }

        res.json(profile);
      })
      .catch(err => res.status(404).json(err));
  }
);

// @route  POST api/profiles/edit
// @desc   编辑信息接口
// @access Private
router.post(
  ‘/edit/:id‘,
  passport.authenticate(‘jwt‘, { session: false }),
  (req, res) => {
    const profileFields = {};

    if (req.body.type) profileFields.type = req.body.type;
    if (req.body.describe) profileFields.describe = req.body.describe;
    if (req.body.income) profileFields.income = req.body.income;
    if (req.body.expend) profileFields.expend = req.body.expend;
    if (req.body.cash) profileFields.cash = req.body.cash;
    if (req.body.remark) profileFields.remark = req.body.remark;

    // 修改指定数据的方法findOneAndUpdate
    // Model.findOneAndUpdate(query, { $set: { name: ‘jason bourne‘ }}, options, callback)
    Profile.findOneAndUpdate(
      { _id: req.params.id },
      { $set: profileFields },
      // new: bool—如果为真,返回修改后的文档,而不是原始文档。默认为false(4.0中更改)
      { new: true }
    ).then(profile => res.json(profile));
  }
);

// @route  POST api/profiles/delete/:id
// @desc   删除信息接口
// @access Private
router.delete(
  ‘/delete/:id‘,
  passport.authenticate(‘jwt‘, { session: false }),
  (req, res) => {
    // 删除指定条件的一条数据的方法 findOneAndRemove
    Profile.findOneAndRemove({ _id: req.params.id })
      .then(profile => {
        profile.save().then(profile => res.json(profile));
      })
      .catch(err => res.status(404).json(‘删除失败!‘));
  }
);

module.exports = router;

 

mongoose增删改查

原文:https://www.cnblogs.com/marquess/p/12727664.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!