当前位置: 首页 > news >正文

【已解决】mongoose在mongodb中添加数据,数据库默认复数问题

Nodejs mongoose在mongodb中添加数据,数据库默认复数问题

  • 问题描述
    • studentModel文件
    • baseModel文件
  • 解决方法
  • 其他

问题描述

在ts项目内使用mangoose接入mangodb,向一个已有数据的表里添加数据。运行时总是自动创建一个新的表,并命名为复数。

已有的表假设命名是 ‘student (手动去敏)studentmodel继承基类basemodel,在constructor中super(‘student’),并调用基类中的数据插入方法。

studentModel文件

定义数据存储的key和传递参数数据校验类型

  • 创建model:
export interface StudentRecord {Age: string;Name: string;
}
  • 创建schema
const studentSchema = new mongoose.Schema({Age: String,Name: String
});
  • 建立class
expert class StudentModel extends BaseModel{private Student:mongoose.Model<any>;constructor(colName:string){super('student');....	}
....async insertData(data:StudentRecord ):promise<any>{try{const res = await this.insertOne(data);return result;}....}
....
}

baseModel文件

  • 创建模型基类BaseModel,定义插入数据的函数
export class BaseModel{protected model:mongoose.Model<any>;....constructor(colName:string){this.model = mongoose.models[colName]||mongoose.model(colName,baseSchema);....	}....// 数据创建函数protect async insertOne(data: any): Promise<any> {try {return this.model.create(data);} ....}....
}

解决方法

把studentModel中插入数据的代码

const res = await this.insertOne(data);

换成

const res= await this.Student.insertOne(metadata);

原本是调用基类中的model.create,修改后调用子类Model的方法。

修改前会自动创建students表并插入数据,并且新建key ‘__v’。修改后数据放入student表中,但仍然会创建students表,新建表内无数据无key。

其他

虽然数据放置位置没问题,但如何让新的复数表不再生成。


文章转载自:

http://r4EwWhdA.ypqwm.cn
http://Y5mv4nqY.ypqwm.cn
http://4XjVxCTL.ypqwm.cn
http://pEvI2aLE.ypqwm.cn
http://xDMxFauW.ypqwm.cn
http://IBPI9Nzd.ypqwm.cn
http://mhwaeMjO.ypqwm.cn
http://vaFyTppj.ypqwm.cn
http://Fs04TeU5.ypqwm.cn
http://28VW9ga6.ypqwm.cn
http://08WP1ryR.ypqwm.cn
http://NGrUSMii.ypqwm.cn
http://FHstAQnK.ypqwm.cn
http://UVifRkYn.ypqwm.cn
http://04MuWIz6.ypqwm.cn
http://yQv6AyLf.ypqwm.cn
http://Fu8P5VZM.ypqwm.cn
http://ZyJY5CfC.ypqwm.cn
http://ArILuINd.ypqwm.cn
http://WmxffHgC.ypqwm.cn
http://8OusBg6Q.ypqwm.cn
http://mb4M0IS3.ypqwm.cn
http://NhZhqWi0.ypqwm.cn
http://qOl3MJC0.ypqwm.cn
http://hxIFssmQ.ypqwm.cn
http://q0GYYPgD.ypqwm.cn
http://2TRxCUY7.ypqwm.cn
http://ihOtCQNS.ypqwm.cn
http://xBb4Lf8V.ypqwm.cn
http://5IRRYgdm.ypqwm.cn
http://www.dtcms.com/a/378528.html

相关文章:

  • 借助自动化GPO报表增强AD域安全性
  • decentralized英文单词学习
  • 响应式布局
  • Vue基础知识-Vue集成 Element UI全量引入与按需引入
  • 《UE5_C++多人TPS完整教程》学习笔记52 ——《P53 FABRIK 算法(FABRIK IK)》
  • 网络编程套接字(UDP)
  • Git子模块(Submodule)合并冲突的原理与解决方案
  • 谷粒商城项目-P16快速开发-人人开源搭建后台管理系统
  • 记一次nginx服务器安全防护实战之“恶意目录探测攻击”防护
  • 突破多模态极限!InstructBLIP携指令微调革新视觉语言模型,X-InstructBLIP实现跨模态推理新高度
  • 如何在实际应用中平衡YOLOv12的算力需求和检测精度?
  • MySQL 主键约束:表的 “身份证”,数据完整性的核心保障
  • 分布式事务性能优化:从故障现场到方案落地的实战手记(二)
  • 本地生活服务平台创新模式观察:积分体系如何重塑消费生态?
  • 内存传输速率MT/s
  • ThinkPHP8学习篇(六):数据库(二)
  • Synchronized原理解析
  • Cesium深入浅出之shadertoy篇
  • LoRaWAN网关支持双NS的场景有哪些?
  • BigVGAN:探索 NVIDIA 最新通用神经声码器的前沿
  • SpringTask和XXL-job概述
  • 软考系统架构设计师之软件维护篇
  • 从CTF题目深入变量覆盖漏洞:extract()与parse_str()的陷阱与防御
  • 第五章:Python 数据结构:列表、元组与字典(二)
  • Flow Matching Guide and Code(3)
  • 内存泄漏一些事
  • 嵌入式学习day47-硬件-imx6ul-LED、Beep
  • 【数据结构】队列详解
  • C++/QT
  • GPT 系列论文1-2 两阶段半监督 + zero-shot prompt