基本上,我的节点服务器上有一些代码,如下所示:

var blogId =  req.params.blogId;
Blog.findById(blogId).exec(...)


我收到此错误:
{"message":"Cast to ObjectId failed for value \"5767399a90bf3cc2828d2cd6\" at path \"_id\" for model \"Blog\"","name":"CastError","stringValue":"\"5767399a90bf3cc2828d2cd6\"","kind":"ObjectId","value":"5767399a90bf3cc2828d2cd6","path":"_id"}

我仅在我的EC2实例上收到此错误,而在计算机上本地运行时却没有。如您所见,这是一个正确形成的ObjectId字符串,并且我已经验证它存在于MongoDB中。

几天前,这已经可以正常使用了。它突然开始出现该错误,并且我没有更改代码。

有任何想法吗?

最佳答案

您可以尝试将其转换为ObjectId。并且,希望它也能解决您的问题。

尝试这个:

var blogId = mongoose.Types.ObjectId(req.params.blogId);
Blog.findById(blogId).exec(...)


我想mongoose已经在您的代码中定义了。

09-18 19:41