node操作mongodb

本文档介绍如何在Node.js环境下,通过Mongoose模块在data文件夹中实现对MongoDB数据库的CURD操作,包括安装Mongoose、增加记录、修改记录、查询记录和删除记录。
摘要由CSDN通过智能技术生成

需求

1. 数据库的作用:用来存放网站数据
2. 独立安装数据库
3. 实现数据库的增删改查命令的使用
4. 通过node实现数据库的增删改查

实际应用

  • 安装Mongoose模块
  • 实现增删改查
    ================================================================

在data文件夹中操作mongodb数据库,实现CURD(增删改查)

 - create   增
 - update   改
 - read       读
 - delete     删
a、在文件夹中,安装mongose模块
 - 初始化目录:npm init -y
 - 安装mongoose模块  ---->   安装好之后在package.json中可以看到有mongoose5.10.2:npm install mongoose

在这里插入图片描述
在这里插入图片描述

b、增删改查的实现

统一的

1)导入模块  
	 -  const 模块名 = require('模块名');
2)连接数据库,将数据库的端口号和库名赋值给一个变量
	 -  const db变量 = 模名.createConnection('mongodb://127.0.0.1:27017/库名', {useNewUrlParser: true, useUnifiedTopology: true})
3)判断打开成功是数据库连接成功,判断打开失败是连接错误
	 -  db变量.on("open打开成功",function(){console.log打印结果("数据库连接成功")})
	 -  db变量.on("error打开失败",function(err){console.log("连接出错"+err)})
4)设置数据模型,声明那个是集合,限制字段和字段类型
	 -  const model = db.model('user数据库中的表名',{ // 没写s 会自动加s
			 -  name:{type:String, default:"username"},  //name名字是文字所以是字符串
			 -  age:{type: Number},    // age年龄是数字所以是number
			 -  sex:{type:String}      //name性别是文字所以是字符串
	 -  })

不同的
1)增

    const insertObj增 = new model新的模块({
        name: "小甜甜",
        age: "22",
        sex:"女"
    })
    // 方法1:insertObj增.save保存((err) => db.close关闭()) 
    // 方法2(推荐)
    insertObj.save()
    .then宗旨(res=>{
        console.log(res)  // 插入成功,返回插入的数据对象
        return res
    })
    .catch捕获(err => {       // 当插入的数据类型 和 原先的声明有误 就走catch
        console.log('插入失败' + err)
        return false
    })

2)改

    // 注:update和updateOne是一样的 但是update已经out了
    // 方法1:model.update/updateOne/updateMany(条件对象, 数据对象, (err) => db.close()) 
    // 方法2(推荐)
    model.updateOne只改一条({age:333}, {$set: {sex: '女'}}) 
    .then(res => {
        // 修改有一个特效
        // 将sex改变女  第一次刷新ok
        // 但是第二次同样的代码刷新  就不行
        // 因为检测到数据一样   没有修改
        console.log(res)    // 返回一个对象 告诉你 修改成功了几条
        return res.nModified   // 返回受影响的行数
    })
    .catch(err => {
        console.log('修改失败' + err)
        return false
    })

3)查

    // 方法1:model.find/findOne(条件对象, 要显示的字段数据对象, (err, result) => db.close()) 
    // 方法2(推荐)
    // model.findOne({name:"千锋刘德华6666"}) 
    model.find({name:"千锋刘德华"}) 
    .then(res => {
        console.log(res)
        return res
    })
    .catch(err => {
        console.log(err)
        return false
    })

4)删

    // 方法1:model.remove/deleteOne/deleteMany(条件对象, (err) => db.close()) 
    // 方法2(推荐)
    // 命令执行成功  影响的行数
    // model.deleteOne({name:"千锋刘德华"})
    model.deleteMany({name:"张三"})
    .then(res => {
        console.log(res.deletedCount)  // 打印受影响的行数
        return res.deletedCount
    })
    .catch(err => {  // 当传递的条件数据类型和模型声明的不一样
        console.log('删除失败' + err)
        return false
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值