使用PUT和update()mongoose递增JSON字段
Incrementing JSON field using PUT and update() mongoose
我试图简单地将1添加到存储在JSON文件中的变量中。
这就是我用来实现这一目标的方法:
app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/incrementFlagCount', function (req, res) {
console.log("incrementing flag count now");
mongoose.model('Listing').findOne(req.street, req.buildingNumber, req.apartmentNumber, function(err, listing){
listing.update({
// $inc : {flagCount : 1}
flagCount : flagCount+1
},function(err){
if(err){
res.send("There was a problem incrementing the flagCount of a listing: " + err);
}
else{
console.log("Flag count after=" + listing.flagCount);
res.json(listing.flagCount);
}
})
});
});
我得到以下错误:ReferenceError: flagCount is not defined
这就是mongolab:中JSON的外观
{
"_id": {
"$oid": "566c4bbabcda51a9eef08578"
},
"street": "test",
"buildingNumber": 1,
"apartmentNumber": 1,
"beds": 1,
"price": 1,
"flagCount": 3,
"owner": "56472a83bd9fa764158d0cb6"
}
我做错了什么?我只想把flagCount
加1。
您使用flagCount对findOne
和update
的调用不正确。CCD_ 5需要一个条件对象。
您还应该使用req.params.street
而不是req.street
等。
与其先查找然后更新,不如使用findOneAndUpdate?
mongoose.model('Listing').findOneAndUpdate({street: req.params.street,
buildingNumber: req.params.buildingNumber,
apartmentNumber: req.params.apartmentNumber}, {$inc: {flagCount: 1}},
function(err, listing) {
/// do stuff
})
相关文章:
- 使用promise和mongoose对文档进行排序
- 如何缩短MongoDB ObjectId并在Mongoose模式中使用它
- 递增一个数字而不去掉前导零
- mongoose.connect undefined不是一个函数
- Javascript:循环属性内部的条件递增或递减
- Mongoose-在更新中删除数组元素
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 变量不递增如何I'我喜欢html按钮点击的时候
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- JavaScript模数未正确递增变量值
- 预保存钩子:mongoose中回调的顺序如何
- Mongoose传递类函数
- 将mongoose javascript代码转换为typescript.此引用丢失
- Mongoose查询嵌套文档的时间或多或少为某个日期
- Jquery扩展点的宽度,同时通过while循环递增
- Node.js和Mongoose返回2D查询
- 从Mongoose结果匿名函数返回父函数
- Angular2/JavaScript-按1递增/递减(单击)
- 自动递增序列字段错误 - MongoDB,Mongoose
- 使用PUT和update()mongoose递增JSON字段