无法使用mongoose findById()工作

时间:2016-08-29 07:31:46

标签: mongoose

来自Mongo Shell

db.messages.find({_id:ObjectId('57b12ca68ea2e15c182044f3')})

将记录打印到屏幕上。

来自快递http://localhost:3000/messages/57b12ca68ea2e15c182044f3

app.get('/messages/:id', function (req, res) {
  console.log('Searching user with ID: ' + req.params.id);

  // message is always null, have tried without "mongoose.Types.ObjectId" but it is still null
  Message.findById(mongoose.Types.ObjectId(req.params.id), function(err, message) {
    console.log('Found record');

    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify(message));
  });
});

我每次都得到一个空响应。我试过没有使用ObjectId包装但我仍然得到空值。 mongoDB连接很好,因为我有Message.find({}, function(err, messages) { ... }成功返回所有消息。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

事实证明我错误地定义了导致此问题的mongoose模式文件中的_id: String。删除_id定义完全解决了这个问题。