使用PUT和update()mongoose增加JSON字段

我试图简单地将1添加到我已经存储在一个JSON文件中的variables。

这正是我用来完成这个的:

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。

您调用findOne并使用flagCount进行update不正确。 findOne需要一个条件的对象。

你也应该使用req.params.street而不是req.street

而不是find然后更新,如何使用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 })