制作增加计数的路径

时间:2018-09-29 20:33:10

标签: mongodb express mongoose increment

我正在尝试发布一个请求,该请求将使用express和mongoose来增加我的架构, 这是:

const ItemSchema = new Schema({
  formName: String,
  inputs: [
    {
      inputLabel: {
        type: String,
        required: true
      },

      inputType: {
        type: String,
        required: true,
        enum: ['text', 'color', 'date', 'email', 'tel', 'number']
      },

      inputValue: {
        type: String,
        required: true
      }
    }
  ],
  numOfSubs: { type: Number, default: 0 }
});

出于我的代码目的,我想创建一条每次使用时都会使numOfSubs增加1的路由,因为有一些清单,所以我有ID,所以我需要搜索它,但不确定如何写路径

router.post('/increase', (req, res) => {
 "find and increase by 1 " 

});

并且我将像这样使用提取:

fetch('/api/items/increase', {
  method: 'POST',
  body: JSON.stringify({ _id }),//the ID I of the collection I want to increment
  headers: {
    'content-type': 'application/json'
  }
});

1 个答案:

答案 0 :(得分:2)

使用mongo $inc运算符

进行尝试
router.post('/increase', (req, res, next) => {
const _id = req.body._id;

   MyModel.findByIdAndUpdate(_id , { $inc: {numOfSubs: 1} }, { new: true },  (err,updateRes)=>{
      if(err) return next(err);
      return res.json({sucess: true});
   });

});