Mongoose 拒绝将有效字符串转换为 ObjectId
Mongoose refuses to cast valid string to ObjectId
我 return 文档 _id
并将其用作 req.params.id
以在稍后阶段获取文档。
ObjectId.isValid()
returns true
,然后在ObjectId()
或Find
或FindOne
中使用它会导致转换错误或
hex is not a function.
基本上也是直接从数据库复制粘贴_id
来测试。
我正在使用猫鼬 ^4.7.6; _id
看起来像:586e30a597f85b69891df304
[Stack trace]
[CastError: Cast to ObjectId failed for value
"586e30a597f85b69891df304" at path "_id" for model "Module"]
message: 'Cast to ObjectId failed for value "586e30a597f85b69891df304" at path "_id" for model "Module"',
name: 'CastError',
stringValue: '"586e30a597f85b69891df304"',
kind: 'ObjectId',
value: '586e30a597f85b69891df304',
path: '_id',
reason: undefined,
事实证明这是那个版本的 mongoose 中的一个错误。删除我的 node_modules 并重新安装 mongoose 设置为 4.3.3 解决了这个问题。
这是 Mongoose >=4.7.3 中的错误
https://github.com/Automattic/mongoose/issues/4867
bson 包真的有问题
我 return 文档 _id
并将其用作 req.params.id
以在稍后阶段获取文档。
ObjectId.isValid()
returns true
,然后在ObjectId()
或Find
或FindOne
中使用它会导致转换错误或
hex is not a function.
基本上也是直接从数据库复制粘贴_id
来测试。
我正在使用猫鼬 ^4.7.6; _id
看起来像:586e30a597f85b69891df304
[Stack trace]
[CastError: Cast to ObjectId failed for value "586e30a597f85b69891df304" at path "_id" for model "Module"] message: 'Cast to ObjectId failed for value "586e30a597f85b69891df304" at path "_id" for model "Module"', name: 'CastError', stringValue: '"586e30a597f85b69891df304"', kind: 'ObjectId', value: '586e30a597f85b69891df304', path: '_id', reason: undefined,
事实证明这是那个版本的 mongoose 中的一个错误。删除我的 node_modules 并重新安装 mongoose 设置为 4.3.3 解决了这个问题。
这是 Mongoose >=4.7.3 中的错误 https://github.com/Automattic/mongoose/issues/4867
bson 包真的有问题