• 【Node.js】通过mongoose得到模型,不能新添字段的问题


    问题描述

      通过node.js为查询到的json对象添加新的字段,对象成功保存到数据库中,但新增字段却没保存。

      前几天用vue+node.js+mongodb技术做一个购物车功能的网页,发现node.js通过mongoose来创建创建数据库表模型(用户模型),通过模型来操作mongoose的保存API来更新数据库。(就是点击商品加入购物车按钮,然后该商品的信息就会添加到users表里面的购物车数组。并且通过userDoc.productNum=1,为当前商品信息添加一个新的数量字段,然后存到购物车数组中(cartList)。但是发现productNum = 1 这个新增的字段根本没有在购物车的商品属性中出现。

     

    寻找原因

      我的用户模型如下:

      

    然后通过node.js来为商品新增productNum属性与checked属性,productDoc就是通过mongoose的模型user,通过对user模型操作保存的api来保存到cartList数组里面,代码如下:

     

    流程看起来很正常,但是保存productDoc也成功了,但查数据库,死活没有新增的prodcutNum与checked字段

    经过webstrom的打点调试,发现productDoc的结构如下:

    看到了吗,上面新增的两个字段在productDoc里面能够看到,但是并没有用,要把新增字段添加在productDoc._doc数组里面,才有用,不然Json对象新增字段不能保存到数据库。

    总结

    node.js想要用到mongoose的对象模型(doc)来对数据库数据新增一个字段,就需要doc._doc.XXX='xxx'这样写。

      

     

  • 相关阅读:
    在WPF中判断是是否为设计时模式(转)
    后缀数组小结
    运算符重载,输出流运算符重载
    ZOJ 3699
    米勒罗宾大素数测定
    FZU 2109 Mountain Number 数位DP
    考试复习
    java文件输入输出
    纯虚函数与抽象类
    转载:stream iterators C++ 用法
  • 原文地址:https://www.cnblogs.com/pengshengguang/p/8409757.html
Copyright © 2020-2023  润新知