当前位置: 首页 > 知识库问答 >
问题:

CastError:对模型路径“_id”处的值“:id”进行ObjectId强制转换失败

傅峻
2023-03-14

前言:我对猫鼬/Express的工作相对来说是新手。

我试图制作一个应用程序,其中一个名为“space”的猫鼬模式中有一个名为“posts”的数组。数组的内容是对另一个名为“POST”的猫鼬模式的ObjectId引用。然而,每次我对应该发送回我的空间和其中的帖子的路线提出GET请求时,我都会得到一个严重的错误。此外,我的帖子没有填充我的空间。

错误:CastError:对于模型“space”的路径“_id”处的值“undefined”,向ObjectId进行强制转换失败

以下是我的路线:

得到

app.get('/spaces/:id', (req,res) => {
Space.findById(req.params.id).populate('posts').exec((err, space) => {
    if(err){
        console.log(err);
    } else {
        res.send(space);
    }
});
app.post('/spaces/:id/posts', (req,res) => {

Space.findById(req.params.id, (err, space) => {
    if(err){
        console.log(err);
        res.redirect('/spaces/:id');
    } else {
        Post.create(req.body, (err, newPost) => {
            if(err){
                console.log(err);
            } else {
                newPost.save();
                space.posts.push(newPost._id);
                res.redirect('/spaces/:id');
            }
        });
    }
});

下面是我的模式:

后架构:

const mongoose = require('mongoose');

让postSchema=new mongoose.schema({title:String,description:String});

const mongoose = require('mongoose');

共有1个答案

薛弘济
2023-03-14

我有一个类似的错误,id在params中是错误的

正确ID:

产品/UpdateProductByID/60FP5F46196351C7E381C0085

 await productsModel.findByIdAndUpdate(
{ _id: _id },
newProduct,
(err, result) => {
  if (err) {
    res.send(err);
  } else {
    res.send("changed!");
  }
}

CastError:对于模型“Products”的路径“_id”处的值“{_id:'660FP5F46196351C7E381C0085'}”(类型为ObjectId)强制转换到ObjectId失败

 类似资料:
  • 嘿,伙计们真的需要一些关于删除路由的帮助。我正在使用RESTful路由,尝试遵循约定,添加删除路由时,我得到错误: CastError:模型"Blog"的路径"_id"处的值"X"转换为ObjectId失败 我已经在stackoverflow上搜索了这个问题,我能想到的最好的版本是猫鼬有一个错误。我把它回滚到V4.10.0,仍然在处理这个问题。我的代码如下:

  • 好吧,我看到这里有一些这样的帖子,但他们没有帮助我。。。 让我描述一下我的问题: 我有两个模式 现在我已经有了一个B对象,我想创建一个a对象。 所以我这样做: b对象是从我的monogDB加载的。调试器为我的b显示了一个有效的ObjectId(53627ed535d9d04416e26218或Sb~Õ5ÙÐDáb)。 但是,当我保存新的A-Object时,会出现错误:“CastError:Cast

  • 我希望有人能帮我找出我在这里做错了什么。我一直在寻找,我可以找到很多类似的问题,但没有一个我足够聪明来解决我的问题。我得到以下错误: CastError:对于模型“customer”的路径“\u id”处的值“customers”,转换为ObjectId失败 它以前是有效的,我设法打破了它,我解开了所有我认为我改变了的东西,我仍然得到了错误。 这是我的模式: 我的路线: 和我的控制器: 此外,以下

  • 我试图在一个MEAN堆栈应用程序中处理一个计划。当我调用findOne时,我得到了这个错误: 我就是这样做的: 我注意到,当我把id作为一个字符串(如下所示)时,一切正常。 所以,我控制台: 我一直在尝试我在这里找到的东西,但任何东西都可以帮助我解决这个问题:/

  • 我看到了几个帖子与类似的我但我仍然得到同样的错误 这是我的用户模式 我的路线 我的应用程序。js 这是我的护照。我正在使用本地护照 passport可以将用户保存到数据库中 模型“用户”的路径“_id”处的值“586cc8b3ea780c071bbe2469”转换为ObjectId失败 我已经构建了两个应用程序,它们使用passport oauth,与上面显示的方式完全相同。所以我不知道为什么我会

  • Comments是嵌套在Post架构中的数组。我想通过推送一个新的评论到评论数组更新相应的帖子。但是得到了错误:CastError:对于模型“post”的路径“_id”处的值“comments”,向ObjectId的强制转换失败 阅读相关帖子 尝试使用“mongoose.types.objectid”,但不起作用 猫鼬版^5.5.4 我在这里使用的所有ID都是有效的 我认为问题出在“comment