我正在尝试发布一个请求,该请求将使用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'
}
});
答案 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});
});
});