猫鼬不会增加数字字段



我使用的是MongoDB和Mongoose。我目前有一个点赞按钮,当我点击它时,我想增加文档中的"点赞"字段。目前我的文档有以下模式:

brote {
name: 
content:
created: 
likes: 
} 

我已经测试了查询中的ID与数据库中对象的ID是否匹配。

我咨询了如何在Mongoose中增加Number值?用猫鼬增加一个值?但这些解决方案似乎并没有对我的数据库进行任何更改。也许我遗漏了一些显而易见的东西?

索引.js

mongoose.connect('mongodb://localhost:27017/bromies', { useUnifiedTopology: true, useNewUrlParser: true });
mongoose.set('useFindAndModify', false);
var Brote = mongoose.model('Brote', broteFormSchema);
app.post('/likes', (req, res) => {
let query = { id: req.body._id};
Brote.findOneAndUpdate(query, {$inc: { 'likes': 1 }});
})

如果没有回调,findOneAndUpdate方法似乎无法工作。尝试传递这样的回调:

let query = { _id: req.body._id}; // It is _id, not id
Brote.findOneAndUpdate(
query, 
{$inc:{ likes: 1}},
(err, brote) => {    // callback
console.log(brote);
}
)  

编辑:
它不起作用的原因是,如果回调没有传递给它,它会返回一个Query。您可以在返回的Query上调用.exec()来执行它。

来自findOneAndUpdate((的文档:

查找匹配的文档,根据更新参数对其进行更新,传递任何选项,并将找到的文档(如果有(返回给回调如果传递了回调,则执行查询

最新更新