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

Javascript 使用PUT和update()mongoose递增JSON字段,javascript,json,node.js,mongodb,mongoose,Javascript,Json,Node.js,Mongodb,Mongoose,我试图简单地向存储在JSON文件中的变量添加1 这就是我用来完成这项任务的方法: app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/incrementFlagCount', function (req, res) { console.log("incrementing flag count now"); mongoose.model('Listing').findOne(req.stre

我试图简单地向存储在JSON文件中的变量添加1

这就是我用来完成这项任务的方法:

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未定义
以下是mongolab中JSON的外观:

{
    "_id": {
        "$oid": "566c4bbabcda51a9eef08578"
    },
    "street": "test",
    "buildingNumber": 1,
    "apartmentNumber": 1,
    "beds": 1,
    "price": 1,
    "flagCount": 3,
    "owner": "56472a83bd9fa764158d0cb6"
}

我做错了什么?我只想将
flagCount
增加1。

您对
findOne
update
的flagCount调用不正确
findOne
需要一个条件对象

您还应该使用
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 
})

尝试listing.update。flagCount@ManuGet-TypeError:listing.update.flagCount不是函数