【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'这样写。
【Node.js】通过mongoose得到模型,不能新添字段的问题的更多相关文章
- [js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)
该系列文章索引: [js高手之路]node js系列课程-创建简易web服务器与文件读写 [js高手之路]node js系列课程-图解express+supervisor+ejs用法 [js高手之路] ...
- Practical Node.js (2018版) 第7章:Boosting Node.js and Mongoose
参考:博客 https://www.cnblogs.com/chentianwei/p/10268346.html 参考: mongoose官网(https://mongoosejs.com/docs ...
- Node.js 常用Mongoose方法
Node.js 手册查询-Mongoose 方法 一.Schema 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力.可以说是数据属性模型(传统意义的表结构 ...
- node.js+express+mongoose实现用户增删查改案例
node.js+express+mongodb对用户进行增删查改 一.用到的相关技术 使用 Node.js 的 express 框架搭建web服务 使用 express 中间件 body-parse ...
- 基于Node.js + jade + Mongoose 模仿gokk.tv
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 关于gokk 大学的娱乐活动基本就是在寝室看电影了→_→,一般都会选择去goxiazai.cc上看,里面的资源多,质量高 ...
- [node.js]express+mongoose+mongodb的开发笔记
时间过得很快,6月和7月忙的不可开交,糟心的事儿也是不少,杭州大连来回飞,也是呵呵. 希望下个阶段能沉浸下来,接着学自己想学的.记一下上几周用了几天时间写的课设.因为课设的缘故,所以在短时间里了解下e ...
- Node.Js and Mongoose
Mongoose官方API,我做完之后整理出来的心得. ONE· Getting Started First be sure you have MongoDB and Node.js installe ...
- Node.js使用Mongoose包操作MongoDB数据库
1. 安装Mongoose npm install mongoose 2. 使用 2.1 创建连接 var mongoose = require('mongoose'); mongoose.conne ...
- node.js下mongoose简单操作实例
Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接var mongoose = require('mongoose'); ...
- [转] node.js下mongoose简单操作实例
Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接 var mongoose = require('mongoose') ...
随机推荐
- 4.21Linux(2)
2019-4-21 22:46:55 今天买了阿里云服务器1年的 116大洋!!! 但是有个服务器感觉很爽!!!!Linux系统还是很有意思的!!!! 直接贴上笔记! 越努力,越幸运!永远不要高估自己 ...
- [LeetCode] Peak Index in a Mountain Array 山形数组的顶峰坐标
Let's call an array A a mountain if the following properties hold: A.length >= 3 There exists som ...
- webpack学习最基本的使用方式(一)
网页中引入的静态资源多了以后会有什么问题.? 1.网页加载速度慢,因为我们要发起很多的二次请求 2.要处理错综复杂的依赖关系 如何解决上面的问题 1.合并,压缩图片,使用精灵图 2.可以使用之前学过的 ...
- atx-agent minicap、minitouch源码分析
项目描述: 因为公司需要,特别研究了一下openatx系列手机群控源码 源码地址: https://github.com/openatx 该项目主要以go语言来编写服务端.集成 OpenSTF中核心组 ...
- git命令别名(Alias)
每次切换分支: git ckeckout branch_name 等命令费时又费力,git 别名配置起来: 别名配置: git config --global alias.ck ckeckout 其他 ...
- HTML文档结构
下面对HTML文档结构进行一 一解释: 1.文档声明:既不是元素,也不是注释: 代码格式:<! DOCTYPE html> 注:必须写在HTML文档的第一行 原因:告诉浏览器使用哪个版本的 ...
- python基础之面向对象1
一.面向对象VS面向过程 1.面向过程 2.面向对象 二.类与对象 1.类和对象 (1)基本概念 类和对象的内存图如下: 2.实例成员 (1)实例变量 (2)实例方法: 3.类成员: (1)类变量 ( ...
- 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(1)
还是先上图吧,无图无真相 别以为真懂Openstack!先别着急骂我,我也没有说我真懂Openstack 我其实很想弄懂Openstack,然而从哪里下手呢?作为程序员,第一个想法当然是代码,Code ...
- Lesson 29 Taxi!
Text Captain Ben Fawcett has bought an unusual taxi and has begun a new serivice. The 'taxi' is a sm ...
- Select下拉框使用ajax异步绑定数据
<!--前端样式--> <style> #searchs { width: 200px; position: absolute; border-top: none; margi ...