【问题标题】:cannot pass id or element to mongoose parameters无法将 id 或元素传递给 mongoose 参数
【发布时间】:2020-10-30 21:19:57
【问题描述】:

在 MongoDB 中,使用 mongoose - 我尝试使用 findByIdAndDelete() 从集合中删除一个项目 它会引发错误 -

CastError: Cast to ObjectId failed for value "5f080dd69af4c61774ef447f " at path "_id" for model "Item"

我的猫鼬代码 -

app.post("/del", function (req, res) {
    const delItem = req.body.del;
    console.log(delItem);           // this one provides the exact id.
    Item.findByIdAndDelete(delItem, function (err) {
        if(err){
            console.log(err);
        }
        else{
            console.log("succesfully Deleted");            
        }
    })
})

我试过find({}) 它提供了完整的数据, 但问题只是当我试图赋予它价值时

findById({"_id: delItem}) - 它不工作

findById({"_id: "34324jj43j34"}) - 如果我手动输入它可以工作,

然后我把delItems的内容改成了里面的一项

find({item: delItem}) - 不工作

find({item: "item 1"}) - 工作中

【问题讨论】:

    标签: javascript node.js mongodb mongoose ejs


    【解决方案1】:

    问题是您的delItem 包含导致此问题的尾随空格:"5f080dd69af4c61774ef447f " - 它应该是"5f080dd69af4c61774ef447f"

    您可以对值进行修整以防止出现此错误:

    Item.findByIdAndDelete(delItem.trim())...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 2020-05-15
      相关资源
      最近更新 更多