【问题标题】:mongoose CastError: Cast to ObjectId failed for value at path "_id"mongoose CastError:转换为 ObjectId 路径“_id”处的值失败
【发布时间】:2017-05-26 06:23:08
【问题描述】:

这是我的架构:

let mongoose = require('mongoose');
let schema = new mongoose.Schema({
  type: String,
  value: String,
  attributes:[mongoose.Schema.Types.Mixed],
  created_at: Date,
  updated_at: Date
})

然后我用 {type:'user_id', value: 1} 创建一个新集合, 然后我通过查询获得新数据:

{type: 'user_id', value: '1'}

没关系,结果如下:

"_id" : ObjectId("5874c5dbed927207df177d3b"),
"type" : "phone",
"value" : "13811785500",
"updated_at" : ISODate("2017-01-10T11:30:19.266Z"),
"created_at" : ISODate("2017-01-10T11:30:19.266Z"),
"attributes" : [], 

然后,我用集合的 ObjectId 查询保存集合:

models.findBydId("5874c5dbed927207df177d3b")

它抛出错误:

CastError: Cast to ObjectId failed for value "5875976f8a03b2229c544c50"    at path "_id" for model "vertex"

谁能告诉我怎么了? 谢谢。

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    你应该试试这个->

    models.find({"_id": ObjectId("5874c5dbed927207df177d3b")});
    

    【讨论】:

    • 我试过了,还是不行。还是抛出保存错误。
    • 好吧,我删除了 node_modules 文件夹并再次 npm 安装,然后一切顺利。
    • 应该是mongoose的问题,版本是4.7.4
    猜你喜欢
    • 2015-07-16
    • 2014-06-20
    • 2016-11-11
    • 2017-03-26
    • 2020-05-20
    • 2019-01-06
    • 2016-05-06
    • 2018-03-17
    • 2021-06-05
    相关资源
    最近更新 更多