首页 文章

MongoDB通过Mongoose JS - 什么是findByID?

提问于
浏览
45

我正在用ExpressJS,PassportJS,MongoDB和MongooseJS编写NodeJS服务器 . 我设法让PassportJS使用通过Mongoose获得的用户数据进行身份验证 .

但要使其工作,我必须使用如下所示的“findById”函数 .

var UserModel = db.model('User',UserSchema);

UserModel.findById(id, function (err, user) { < SOME CODE > } );

UserModel 是一个Mongoose模型 . 我之前声明了架构 UserSchema . 所以我认为 UserModel.findById() 是Mongoose模型的一种方法?

Question

findById 做了什么,有文件吗?我用Google搜索了一下但没有发现任何东西 .

3 回答

  • 97

    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) .

  • 7

    与find()相反,find()可返回1个或多个文档,findById()只能返回0或1个文档 . 文件可以被认为是记录 .

  • 3

    如果id的模式不是 ObjectId 类型,则无法使用函数进行操作: findbyId()

相关问题