我在这里遇到这个小问题/混乱......我实际上能够通过他们的_id使用findById(req.params.articleId)
我的请求
router.get('/:articleId', function (req, res, next) {
var decoded = jwt.decode(req.query.token);
Article.findById(req.params.articleId, 'keyskeys')
.populate('user')
.exec( function (err, article) {
console.log('see out article too', article)
// if the ID is not found or invalid, return err
if (err) {
return res.status(500).json({
title: 'An error occured',
error: err
});
}
// if the article was not found anyways
if (!article) {
return res.status(500).json({
title: 'Article not found',
error: { message: 'Article was not found!' }
});
}
return res.json({
success: true,
message: 'successful :id',
article: article,
});
});
});
Postman正在返回200 ok
,但返回的数据不仅仅是我想要的
它只返回objectID,而我需要它来获取该特定Id的整个对象...
我在这里很困惑,用Google搜索,无法真正抓住某些东西......
邮递员正在返回
{
"success": true,
"message": "successful :id",
"article": {
"_id": "5b0af26a0321733524c64c91"
}
}
它应该返回类似
的内容{
"_id" : ObjectId("5b0af26a0321733524c64c91"),
"favoritesCount" : 33,
"title" : "jfdkjkjgfkgfkll",
"description" : "lkfgmfglkgfklgfk",
"body" : "klmfl,,;lvk;lggpog,gf.,gf.gl.",
"username" : "qqqq",
"userId" : ObjectId("5b0af2500321733524c64c90"),
"__v" : 0
}
任何帮助将不胜感激
答案 0 :(得分:0)
findById是Mongoose提供的模型的便捷方法,用于通过_id查找文档。它的文档可以在这里找到。
Example:
// Search by ObjectId
var id = "56e6dd2eb4494ed008d595bd";
UserModel.findById(id, function (err, user) { ... } );
从功能上讲,它与调用相同:
UserModel.findOne({_id: id}, function (err, user) { ... });
有关详细信息,请参阅此Similar Question Link