如何将 MongoDB findOne() 与猫鼬一起使用

How to use MongoDB findOne() with mongoose

我在将 MongoDB findOne() 函数与猫鼬一起使用时遇到问题。

控制器

exports.show = function (req, res) {
   Fahrt.load(req.params.fahrtenId, function (err, fahrt) {
       res.jsonp(fahrt);
   });
};

型号

FahrtSchema.statics = {
load: function (id, cb) {
    this.findOne({
            _id: id
        }
    ).exec(cb);
}};

路线

router.get('/:fahrtId', fahrtenController.show);

app.js

app.use('/fahrten', fahrten);

当我使用 Postman 查询具有特定 ID 的 "Fahrt" 对象时,我返回 "null"。当我直接通过

使用 Mongo 控制台搜索时
db.Fahrt.findOne({"_id": ObjectId("5562ca06a14c4924090ba5ff")})

我得到了一个现有的对象,一切都符合预期。但是为什么当我通过 Mongoose 查询时不呢?

你路由中的参数是:fahrtId:

router.get('/:fahrtId', fahrtenController.show);

但是您正在尝试从 fahrtenId 中检索值:

req.params.fahrtenId