Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';s转换为ObjectId的值“失败”;“价格”;在路径上“_id";对于“型号”;产品;?_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 什么';s转换为ObjectId的值“失败”;“价格”;在路径上“_id";对于“型号”;产品;?

Javascript 什么';s转换为ObjectId的值“失败”;“价格”;在路径上“_id";对于“型号”;产品;?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在发送一个请求GET,以显示排序后的升价输出 错误是 CastError:由于路径处的值“ascendPrice”,转换为ObjectId失败 “产品”型号的“标识” 我不明白这个错误是怎么回事。这个错误是不言自明的。路径\u id必须采用特定格式,而字符串ascendPrice不需要 Mongo\u id必须是一个由以下各项组成(如文档所述): 一个4字节的时间戳值,表示ObjectId的创建,自Unix时代以来以秒为单位 5字节的随机值 3字节递增计数器,初始化为随机值 因此,您使用

我正在发送一个请求
GET
,以显示排序后的升价输出

错误是

CastError:由于路径处的值“ascendPrice”,转换为ObjectId失败 “产品”型号的“标识”


我不明白这个错误是怎么回事。

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

Mongo
\u id
必须是一个由以下各项组成(如文档所述):

  • 一个4字节的时间戳值,表示ObjectId的创建,自Unix时代以来以秒为单位
  • 5字节的随机值
  • 3字节递增计数器,初始化为随机值
因此,您使用的值必须与此匹配,而您的数字不匹配

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

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"
        })
    })
}