Javascript 您可以在模型实例上使用$inc吗?
我正在尝试做这样的事情Javascript 您可以在模型实例上使用$inc吗?,javascript,mongodb,mongoose,mongoose-schema,Javascript,Mongodb,Mongoose,Mongoose Schema,我正在尝试做这样的事情 BlogPost.findOne({name: req.params.name}).then((blog) => { blog.update({$inc: {likes: 1}}); blog.save(function (err) { if (err) console.log(err); console.log('Success!');
BlogPost.findOne({name: req.params.name}).then((blog) => {
blog.update({$inc: {likes: 1}});
blog.save(function (err) {
if (err) console.log(err);
console.log('Success!');
});
});
但每次我运行我的路由时,我的代码都无法按预期增加字段。
您可以在模型实例上使用$inc吗 确保
blog
not return null blogpost not return null,我写了console.log(blog)
it,它按预期打印了文档。你可能没有,因为你问的正是那里列出的内容。但是模式不是.update()
然后.save()
,因为在这种用法中,.update()
取代了.save()
,并且做了一些聪明的事情。因此,我们应该提供对.update()
的回调,即blog.update({'$inc':{'likes':1}}),函数(err){…
,但我们确实希望您认识到,您需要打破“查找”->“修补”->“保存”模式,从模型调用.update()
,即BlogPost.update({name:req.params.name},{{$inc:{likes:1}},函数(err){…
现在您不需要从服务器上取下不需要的数据,只需告诉服务器在匹配的文档中增加字段。这就像将页面发送到库中插入书籍,而不是带着一本书走到图书馆,插入一页,然后把书带回图书馆