文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

NodeJs Express框架如何操作MongoDB数据库

2023-07-04 23:46

关注

这篇文章主要介绍“NodeJs Express框架如何操作MongoDB数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“NodeJs Express框架如何操作MongoDB数据库”文章能帮助大家解决问题。

1、Mongoose模块

(1)是一个对象模型工具,是对Node.js环境下操作MongoDB数据库进行了封装,可以将MongoDB数据库中的数据转换成JavaScript对象供用户使用。

(2)名词:

(3)命名规范:驼峰命名 例:

PersonSchema:Person对应的Schema ,Person的文本属性(表结构)

PersonModel:Person对应的Model

PersonEntity:Person对应的Entity

Schema生成Model,由Model生成Entity,Model和Entity都可以操作数据库,Model的可操作性更强。

2、Mongoose模块的使用

(1)安装:npm install mongoose

(2)创建数据库连接文件

// 导入mongoose模块const Mongoose = require('mongoose');// 定义MongoDB数据库的连接字符串:协议://主机地址:端口号/数据库名const mdb_url = 'mongodb://localhost:27017/my_test';Mongoose.connect(mdb_url,{useNewUrlParser:true,useUnifiedTopology:true});// 对连接过程进行处理// 建立连接  ——连接成功触发connected事件Mongoose.connection.on('connected',()=>{    console.log('数据库连接成功~'+mdb_url);})// 连接异常 ——回调函数的参数中保存了异常的信息Mongoose.connection.on('error',(e)=>{    console.log(e);})//断开连接 ——断开连接触发Mongoose.connection.on('disconnected',()=>{    console.log('断开数据库的连接~');})// 导出mongoosemodule.exports = Mongoose;

(3)创建Schema,再由Schema创建Model

3、关于模型名称和数据库中集合名称的对应关系

(1)数据库中没有集合

mongoose.model('Admin',AdminSchema) ——>在模型名后加s就是集合名(不区分大小写) ——admins

mongoose.model('Admin',AdminSchema,'admin')——>第三个参数就是用于定义的集合名称

(2)数据库中有集合

mongoose.model('Admin',AdminSchema,'数据库中已有的集合名')

4、mongoose的基本操作

(1)插入文档:save方法

const AdminModel = require('../model/adminModel');// 通过model创建一个对象const admin = new AdminModel({    _id:'1005',    userName:'唐僧',    password:'123456',    address:'东土大唐'})admin.save((err,res)=>{    if(err){        console.log(err);    }else{        console.log(res);    }})

(2)删除文档:findByIdAndDelete :直接通过Model调用,作用是根据文档的_id属性删除

(3)删除文档:deleteOne:直接通过Model调用,根据给定的条件删除文档

(4)更新文档:findOneAndUpdate,直接通过Model调用

findOneAndUpdate(条件,更新语句,{},回调函数)

AdminModel.findOneAndUpdate(    {'_id':'1004'},  //表示查询的条件    {$set:{'password':'789567'}}, //更新语句    null,  //表示查询操作,通常为null    (err,data)=>{ //更新回调函数,err表示数据库的错误信息,data中存放的findOne查询到的文档        if(err){          console.log(err);  //err表示数据库错误:查询、更新时数据库出现异常        }else if(!data){ //data为null时表示没有找到对应的文档            console.log('更新失败~');        }else if(data){  //data不为null时表示找到对应的文档            console.log('更新成功~')        }    })

(5)更新文档:updateOne(条件,更新语句,回调函数)

AdminModel.updateOne({'password':'123456'},{$set:{'password':'567890'}},(err,data)=>{    if(err){        console.log(err);    }    console.log(data.modifiedCount);})

(6)查询所有:find

AdminModel.find((err,data)=>{    if(err){        console.log(err);    }    console.log(data);})

(7)按_id查询:findById

AdminModel.findById({    '_id':'1004'},(err,data)=>{    if(err){        console.log(err);    }    console.log(data);})

(8)多条件查询:findOne 返回满足条件的第一条记录

AdminModel.findOne({    address:'三国',    password:'123456'},(err,data)=>{    if(err){        console.log(err);    }    console.log(data)})

(9)查询集合中的文档数量 :count

AdminModel.count((err,data)=>{    if(err){        console.log(err);    }    console.log('记录数:'+data);})

关于“NodeJs Express框架如何操作MongoDB数据库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯