我返回文档_id
并将其用作req.params.id
以便稍后获取该文档。
ObjectId.isValid()
返回true
,然后在ObjectId()
或Find
或FindOne
中使用它会导致播放错误或
hex不是函数。
基本上,也可以直接从数据库中复制粘贴_id
进行测试。
我使用的是mongoose ^ 4.7.6 ; _id
看起来像是:586e30a597f85b69891df304
[堆栈追踪]
[CastError:强制转换为ObjectId失败 " 586e30a597f85b69891df304"在路径" _id" for model" Module"] 消息:'强制转换为ObjectId值" 586e30a597f85b69891df304"在路径" _id"对于模型"模块"', 名称:' CastError', stringValue:'" 586e30a597f85b69891df304"', 善良:' ObjectId', 价值:' 586e30a597f85b69891df304', 路径:' _id', 原因:未定义,
答案 0 :(得分:1)
这是Mongoose> = 4.7.3中的错误 https://github.com/Automattic/mongoose/issues/4867
bson包非常错误
答案 1 :(得分:0)
原来这是猫鼬版本中的一个错误。删除我的node_modules并使用设置为4.3.3的mongoose重新安装修复了此问题。