解决moongose属性添加问题doc.productNum = 1; doc.checked = 1;

在实现慕课商城项目时,遇到商品加入购物车时自定义属性productNum和checked无法添加的问题。原因是Mongoose作为ODM,其数据结构依赖于schema定义。当尝试为未定义在schema中的属性赋值时,这些属性不会被持久化。解决方案是在操作Mongoose对象时,确保使用正确的数据结构或使用其他方法来添加自定义属性。
摘要由CSDN通过智能技术生成

在做慕课商城项目将商品加入购物车时,自定义属性添加不上去
代码如下

doc.productNum = 1;
doc.checked = 1;//选中
userDoc.cartList.push(doc);//将商品加入到用户名下

moongose模型中也已经定义了这两个属性

var userSchema = new moongoose.Schema({
  "userId":String,
  "userName":String,
  "userPwd":String,
   "orderList":Array,//订单列表
   "cartList":[//购物车列表
     {
       "productId":String,//商品信息
       "productName":String,
       "salePrice":Number,
       "productImage":String,
       "productNum":String,//加入购物车的商品数量
       "checked":String//商品是否选中
     }
   ],
  "addressList":Array//地址列表
});
module.exports = moongoose.model("User",userSchema);

但是商品首次加入购物车时,并没有这两个属性,再次加入该商品时productNum=NaN
在这里插入图片描述
原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值