我正在写一个NodeJS服务器与ExpressJS,PassportJS,MongoDB和MongooseJS。我刚刚设法让PassportJS使用通过Mongoose获得的用户数据进行身份验证。
但为了让它正常工作,我不得不使用如下所示的"findById“函数。
var UserModel = db.model('User',UserSchema);
UserModel.findById(id, function (err, user) { < SOME CODE > } );
UserModel
是一种Mongoose模型。我在前面声明了模式UserSchema
。所以我认为UserModel.findById()
是Mongoose模型的一种方法?
问题
findById
是做什么的,有关于它的文档吗?我用谷歌搜索了一下,但什么也没找到。
发布于 2012-09-19 03:34:26
findById
是Mongoose提供的模型上的一种便捷方法,用于通过其_id查找文档。它的文档可以在here中找到。
示例:
// Search by ObjectId
var id = "56e6dd2eb4494ed008d595bd";
UserModel.findById(id, function (err, user) { ... } );
在功能上,它与调用相同:
UserModel.findOne({_id: id}, function (err, user) { ... });
请注意,Mongoose将把提供的id
值转换为模式中定义的_id
类型(缺省为ObjectId)。
发布于 2018-05-23 14:56:06
如果id的模式不是ObjectId类型,则不能使用function:findbyId()进行操作
发布于 2014-01-29 07:25:48
与可以返回1个或更多文档的find()相反,findById()只能返回0或1个文档。文档可以被认为是记录。
https://stackoverflow.com/questions/12483632
复制相似问题