node插件MongoDB(四)—— 库mongoose 的文档操作使用

news2024/10/5 17:27:42

文章目录

  • 前言
      • (1)问题:安装的mongoose 库版本不应该过高导致的问题
      • (2)重新安装低版本
  • 一、插入文档
    • 1. 代码
    • 2. node终端效果
    • 3. 使用mongo.exe查询数据库的内容
  • 二、删除文档
    • 1. 删除一条
    • 2. 批量删除
    • 3. 代码


前言

(1)问题:安装的mongoose 库版本不应该过高导致的问题

比如我默认安装8.0的版本就会报下面的错误
throw new MongooseError(‘Model.create() no longer accepts a callback’); MongooseError: Model.create() no longer accepts a callback

在这里插入图片描述

(2)重新安装低版本

npm i mongoose@6.8.0

package.json 如下图
在这里插入图片描述


一、插入文档

1. 代码

// 1:安装并导入mongoose
const  mongoose = require('mongoose')


mongoose.set('strictQuery', true); // 解决终端警告的问题
// 2: 连接 mongodb 服务
// mongodb: 表示mongodb 服务,而不是http服务
// 27017 表示端口号
// test 表示数据库名
mongoose.connect('mongodb://127.0.0.1:27017/test')

// 3:设置回调
// 3.1 设置连接成功的回调
// 设置连接成功的回调: once 事件回调函数只执行一次
mongoose.connection.once('open', () => {
    console.log('连接成功');
    // 4:创建文档的结构对象
    // 设置集合中文档的属性以及属性值的类型
    let userSchema = new mongoose.Schema({
        name: String,
        age: Number,
        sex: String
    })
    // 5:创建模型对象   对文档操作的封装对象
    let userModel = mongoose.model("user", userSchema)

    // 6: 新增
    userModel.create({
        name: '张三',
        age: 18,
        sex: '男'
    }, function (err, data){
        // err 判断是否有错误
        if (err) {
            console.log(err)
            return;
        } 
        console.log(data);
        // 7:关闭数据库链接(实际项目中不会添加该代码)
        mongoose.disconnect();
    })
})
// 3.2 设置连接错误的回调
mongoose.connection.on('error', () => {
    console.log('连接错误');
})
// 3.3 设置连接关闭的回调
mongoose.connection.on('close', () => {
    console.log('连接关闭');
})

2. node终端效果

在这里插入图片描述

3. 使用mongo.exe查询数据库的内容

在这里插入图片描述

4:注意点

为什么创建的集合名和在mongo.exe中查询的名字不一样呢?

在这里插入图片描述

二、删除文档

1. 删除一条

deleteOne 删除一条数据的方法
在这里插入图片描述

在这里插入图片描述

2. 批量删除

delectMany 批量删除数据的方法
在这里插入图片描述

3. 代码

// 1:安装并导入mongoose
const  mongoose = require('mongoose')


mongoose.set('strictQuery', true); // 解决终端警告的问题
// 2: 连接 mongodb 服务
// mongodb: 表示mongodb 服务,而不是http服务
// 27017 表示端口号
// test 表示数据库名
mongoose.connect('mongodb://127.0.0.1:27017/test')

// 3:设置回调
// 3.1 设置连接成功的回调
// 设置连接成功的回调: once 事件回调函数只执行一次
mongoose.connection.once('open', () => {
    console.log('连接成功');
    // 4:创建文档的结构对象
    // 设置集合中文档的属性以及属性值的类型
    let userSchema = new mongoose.Schema({
        name: String,
        age: Number,
        sex: String
    })
    // 5:创建模型对象   对文档操作的封装对象
    let userModel = mongoose.model("user", userSchema)

    // 6: 删除一条
    // userModel.deleteOne({ _id: '654cf280d53122b083bea83f' }, (err, data) => {
    //     // err 判断是否有错误
    //     if (err) {
    //         console.log('删除失败', err)
    //         return;
    //     } 
    //     console.log(data);
    // })
    
    // 7:批量删除
    // 删除性别为男的所有数据
    userModel.deleteMany({ sex: '男' }, (err, data) => {
        // err 判断是否有错误
        if (err) {
            console.log('删除失败', err)
            return;
        } 
        console.log(data);
    })
})
// 3.2 设置连接错误的回调
mongoose.connection.on('error', () => {
    console.log('连接错误');
})
// 3.3 设置连接关闭的回调
mongoose.connection.on('close', () => {
    console.log('连接关闭');
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新方向!文心一言X具身智能,用LLM大模型驱动智能小车

具身智能已成为近年来研究的热点领域之一。具身智能强调将智能体与实体环境相结合,通过智能体与环境的交互,来感知和理解世界,最终实现在真实环境中的自主决策和运动控制。 如何基于文心大模型,低成本入门“具身智能”&#xff0…

社区团购小程序系统源码+各种快递代收+社区便利店 带完整的搭建教程

社区团购小程序系统源码的开发背景可以追溯到近年来电商行业的快速发展,特别是在新冠疫情的影响下,线上购物在全球范围内得到了更广泛的普及和使用。社区团购作为一种新兴的电商模式,结合了传统团购和社交电商的优点,通过线上平台…

jQuery中淡入与淡出

在我们jQuery中为我们封装了很多好玩的方法,我为大家介绍一下淡入与淡出! 我们需要配合事件来玩淡入淡出 淡出语法:fadeOut([speed,[easing],[fn]) (1)参数都可以省略 (2)speed:三种预定速度之一的字符串(“slow”“normal”or “fast”)或…

QML8、布局元素

布局元素(Layout Items) QML使用anchors(锚)对元素进行布局。anchoring(锚定)是基础元素对象的基本属性,可以被所有的可视化QML元素使用。一个anchors(锚)就像一个协议,并且比几何变化更加强大。Anchors(锚)是相对关系的表达式,你通常需要与其它元素搭配使用。 一…

如何理解CDN?说说实现原理?

面试官:如何理解CDN?说说实现原理? 一、是什么 CDN (全称 Content Delivery Network),即内容分发网络 构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分…

Leo赠书活动-07期 【嵌入式虚拟化技术与应用】文末送书

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…

Spring boot 整合grpc 运用

文章目录 GRPC基础概念:Protocol Buffers:proto 基础语法:调用类型: Spring boot 整合 grpc项目结构:整合代码:父 pomproto 模块服务端:客户端:实际调用: 原生集成 GRPC基…

振南技术干货集:C语言的一些“骚操作”及其深层理解(3)

注解目录 第二章《c语言的一些“操作”及其深层理解》 一、字符串的实质就是指针 (如何将 35 转为对应的十六进制字符串”0X23”?) 二 、转义符\ (打入字符串内部的“奸细”。) 三、字符串常量的连接 &#xff…

介绍YOLO-NAS Pose:姿势估计的技术

YOLO-NAS 姿势 YOLO-NAS Pose models是对 Pose Estimation 领域的最新贡献。今年早些时候,Deci 因其突破性的目标检测基础模型 YOLO-NAS 获得了广泛认可。在 YOLO-NAS 成功的基础上,该公司现在推出了 YOLO-NAS Pose 作为其姿势估计的对应产品。该姿势模型在延迟和准确性之间…

FinClip 产品10月报:官网新增PC终端麒麟版、UOS版下载

FinClip 的使命是使您(业务专家和开发人员)能够通过小程序解决关键业务流程挑战,并完成数字化转型的相关操作。不妨让我们看看在本月的产品与市场发布亮点,看看是否有助于您实现目标。 产品方面的相关动向👇&#x1f…

拆分代码 + 动态加载 + 预加载,减少首屏资源,提升首屏性能及应用体验

github 原文地址 我们看一些针对《如何提升应用首屏加载体验》的文章,提到的必不可少的措施,便是减少首屏幕加载资源的大小,而减少资源大小必然会想到按需加载措施。本文提到的便是一个基于webpack 插件与 react 组件实现的一套研发高度自定…

【java】JVM-关于Object o=new Object()

请解释一下对象的创建过程?(半初始化) 加问DCL要不要加volatile问题?(指令重排) 对象在内存中的存储布局?(对象与数组的存储不同) 例如一个class对象中有三个变量,分别是int(4bytes),long(8bytes)&#…

《QT从基础到进阶·十七》QCursor鼠标的不同位置坐标获取

一些常用鼠标图形: 鼠标光标相对于整个电脑屏幕的位置:QCursor::pos() 当前光标相对于当前窗口的位置:this->mapFromGlobal(QCursor::pos()) void MainWindow::mouseReleaseEvent(QMouseEvent* event) {QPoint pos event->pos(); …

学者观察 | 数字经济中长期发展中的区块链影响力——清华大学柴跃廷

导语 区块链是一种全新的分布式基础架构与计算范式,既能利用非对称加密和冗余分布存储实现信息不可篡改,又可以利用链式数据结构实现数据信息可溯源。当前,区块链技术已成为全球数据交易、金融结算、国际贸易、政务民生等领域的信息基础设施…

【word技巧】word文件中的图片,批量提取

如果你需要word文件中的图片做其他事情,除了一张张的进行图片另存为以外,我们还有其他方法可以批量一次性保存word文档中的图片嘛?今天分享两个方法,批量保存word文档图片。 方法一: 将文件进行另存为,在…

“Git 在团队协作中的优化实践“

文章目录 引言:一、Git 简介1.1 Git 基本概念1.2 Git 原理与工作流程 二、 Git 与 SVN 的区别三、Git 的常用命令及操作四、Git 的理论知识:总结: 引言: 随着技术的不断演进和团队的不断发展,代码管理变得越来越重要。…

境电商为什么要做独立站?API一键对接秒上架瞬间拥有全平台几十亿商品和用户!

境电商为什么要做独立站?它的优势又有哪一些? 如果说我们的企业是做b two b的跨境电商,那今天这个内容一定要仔细,API一键对接秒上架瞬间拥有全平台几十亿商品和用户! 第一呢,独立站它就是我们自己做的一个…

长安链可验证数据库,保证数据完整性的可信存证方案

近日,长安链发布“可验证数据库”实现了链上链下协同存储及数据完整性保证,显著提升长安链存储能力的可扩展性。 可信存证是联盟链最典型的应用场景,被广泛应用在司法、工业、农业、贸易等领域。联盟链的存证应用主要分为两个阶段&#xff1…

解决方案 |法大大电子合同推动汽车后市场多元数智化发展

近日,商务部等9部门联合发布《关于推动汽车后市场高质量发展的指导意见》(以下简称《指导意见》),明确了汽车后市场发展的总体目标和主要任务,系统部署推动汽车后市场高质量发展,促进汽车后市场规模稳步增长…