You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mongoose使用updateOne的$pop操作时出现Cast to number路径错误怎么解决?

错误原因
  • 操作符误用:MongoDB 中$pop操作符仅用于删除数组的头部或尾部元素,仅接受1(删除最后一个元素)或-1(删除第一个元素)作为参数。你向$pop传入了自定义的匹配对象,Mongoose 尝试将传入的非数值内容转为数字失败,直接触发了类型转换报错。
  • 删除数组内匹配指定条件的元素,应该使用$pull操作符而非$pop。
修复后的业务代码

不需要修改你现有的 Schema 配置,仅替换更新操作的操作符即可:

module.exports.removeFromCart = (userId,productId)=>{
return User.updateOne({_id: userId}, {$pull: {cartItems:{item:productId}}}).then((result)=>{
    console.log(result);
}).catch(error=>{
    console.log(error);
})
}

内容的提问来源于stack exchange,提问作者quielfala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:00:02