mongoose使用语句追加对象的属性失败的记录贴

问题描述:如题,其他的更新的字段都能更新,只有新加的属性没有追加进去,

语句结构如下:

doc.productNum = 1;
doc.checked = 1;
userDoc.cartList.push(doc);

原因:
因为Mongoose是个ODM (Object Document Mapper),类似于操作关系型数据库使用的ORM(Object Relational Mapper),我们使用Mongoose取到的数据的结构是要依赖于我们定义的schema结构的。增加的属性在(goods)schema中没有定义,所以我们给goods临时附加productNum和checked属性是无效的。

在这里需要说明一下,就是虽然我们给schema附加属性,但是这只是实现能真正挂在该schema上,并没有添加到schema中。比如上述的只是想实现在添加商品的时候,顺便把productNum和checked的值赋给users表中。我们无须把属性存储到goods中。

解决办法:

newdoc = {//新创建一个对象,实现转换mongoose不能直接增加属性的坑
             productNum: "1",
             checked: "1",
             productId: doc.productId,
             producName: doc.producName,
             salePrice: doc.salePrice,
             productName: doc.productName,
             productImage: doc.productImage,
          }
userDoc.cartList.push(newdoc);

总算是解决了, -_-!!!

猜你喜欢

转载自blog.csdn.net/webfullstack/article/details/80955599