【问题标题】:Mongoose refuses to cast valid string to ObjectIdMongoose 拒绝将有效字符串转换为 ObjectId
【发布时间】:2017-05-20 00:08:38
【问题描述】:

我返回文档_id 并将其用作req.params.id 以便稍后获取文档。

ObjectId.isValid() 返回true,然后在ObjectId()FindFindOne 中使用它会导致转换错误或

十六进制不是函数。

基本上也是直接从数据库复制粘贴_id进行测试。

我正在使用猫鼬 ^4.7.6; _id 看起来像:586e30a597f85b69891df304

[堆栈跟踪]

[CastError: 转换为 ObjectId 的值失败 模型“模块”的路径“_id”中的“586e30a597f85b69891df304”] 消息:“模型“模块”的路径“_id”处值“586e30a597f85b69891df304”的值“586e30a597f85b69891df304”转换为 ObjectId 失败”, 名称:'CastError', stringValue: '"586e30a597f85b69891df304"', 种类:'ObjectId', 值:'586e30a597f85b69891df304', 路径:'_id', 原因:未定义,

【问题讨论】:

标签: node.js mongodb mongoose casting objectid


【解决方案1】:

原来这是那个版本的猫鼬中的一个错误。删除我的 node_modules 并使用设置为 4.3.3 的 mongoose 重新安装解决了这个问题。

【讨论】:

    【解决方案2】:

    这是 Mongoose >=4.7.3 中的一个错误 https://github.com/Automattic/mongoose/issues/4867

    bson 包真的有问题

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 2022-01-02
      • 2011-12-11
      • 2018-11-09
      • 1970-01-01
      • 2019-06-23
      相关资源
      最近更新 更多