ben*_*e89 1 mongoose mongodb node.js express
我用Mongoose/Express更新Mongo中的记录:
app.put('/loggedIn/:id', function(req, res) {
if (req.user._id == req.params.id) {
User.update({
_id: req.user._id
}, {
$set: {
interests: req.body.interests
}
}, function(err, num) {
if (err) return err;
User.findById(req.user._id, '_id username interests', function(err, user) {
if (err) return;
res.json(user);
});
});
} else {
console.log('fail');
}
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免在回调中做第二个查询update()
,似乎很多只是为了返回新更新的文档.
如果您始终只更新一个文档,则可以使用findByIdAndUpdate(或findOneAndUpdate),如果找到该文档,则会更新文档并将其返回给回调:
app.put('/loggedIn/:id', function(req, res) {
if (req.user._id == req.params.id) {
User.findByIdAndUpdate(req.user._id, {
$set: {
interests: req.body.interests
}
}, function(err, user) {
if (err) return;
res.json(user);
});
} else {
console.log('fail');
}
});
Run Code Online (Sandbox Code Playgroud)