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

模型“产品”的路径“\u id”处的值“ascendPrice”对ObjectId的强制转换失败了什么?

屠嘉勋
2023-03-14
sortByAscend (req, res) {
    Product.find({}).aggregate([
        {$sort: {price: 1}}
    ])
    .then(ascend => {
        console.log("Displaying ascended price")
        res.status(201).json({
            ascend
        })
    })
    .catch(err => {
        console.log(err)
        res.status(500).json({
            message: "Internal server error"
        })
    })
}

我正在发送一个请求GET来显示排序升序价格的输出。

错误是

CastError:对模型“产品”的路径“\u id”处的值“ascendPrice”转换为ObjectId失败

我不明白这个错误是关于什么的。

共有1个答案

陈松
2023-03-14

这个错误是不言自明的。路径\u id必须采用特定格式,而字符串ascendPrice不需要。

Mongo\u id必须是一个ObjectId,它由以下部分组成(如文档所述):

  • 一个4字节的时间戳值,表示ObjectId的创建,自Unix时代以来以秒为单位测量

因此,您使用的值必须与此匹配,而您的数字不匹配。

因此,问题在于您的收藏中存在(至少)一个\u idascendPrice的文档,并且它不符合模式,无法转换为ObjectId

 类似资料:
  • 前言:我对猫鼬/Express的工作相对来说是新手。 我试图制作一个应用程序,其中一个名为“space”的猫鼬模式中有一个名为“posts”的数组。数组的内容是对另一个名为“POST”的猫鼬模式的ObjectId引用。然而,每次我对应该发送回我的空间和其中的帖子的路线提出GET请求时,我都会得到一个严重的错误。此外,我的帖子没有填充我的空间。 错误:CastError:对于模型“space”的路径

  • 我的控制器obter_todos_precos只是一个console.log,没有使用任何模型,但我得到以下错误: 为什么我会有这种行为?

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

  • 我的应用程序可以在本地工作,但在生产中,我似乎无法使用猫鼬从mongo获取特定的东西。我尝试过:

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

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