mongodb mongoose 的使用

27 篇文章 0 订阅
13 篇文章 0 订阅

一、mongodb的使用

const express = require("express")
const app = express()
//通过mongodb模块 连接数据库 
//1.引入模块
const mongodb = require("mongodb").MongoClient
const ObjectId=require("mongodb").ObjectId
// console.log(ObjectId)
//2.配置连接地址  数据库启动地址
const mongodbUrl="mongodb://localhost:27017"

//增 /insert
app.get("/insert", (req, res) => {
    //第一个参数:url 数据库地址
    //第二个参数:回调函数
    mongodb.connect(mongodbUrl, (err, db) => {
        if (err) {
            res.send("数据库连接失败")
        }
        //db对应的数据库 
        // db.db(数据库名称).cellection(集合名称).insertOne(数据,(err,data)=>])
        //自动产生一个_id  Objectid
        db.db("demo4").collection("demo_user").insertOne({ name: 789, age: 3,a:1 }, (err, data) => {
            if (err) {
                res.send("插入数据错误")
            } else {
                res.send(data)
            }
        })
    })
})
//查找接口
app.get("/find", (req, res) => {
    mongodb.connect(mongodbUrl, (err, db) => {
        if (err) {
            res.send("数据库连接失败")
        }
        //.find()查找
        //条件查找 
        // db.db("demo4").collection("demo_user").find({"_id":ObjectId("61d83d662812ac57d0c43ced")}).toArray((err, data) => {
        //     if (err) {
        //         res.send("查找失败")
        //     }
        //     res.send(data)
        // })
        //   db.db("demo4").collection("demo_user").find({name:456,age:3}).toArray((err, data) => {
        //     if (err) {
        //         res.send("查找失败")
        //     }
        //     res.send(data)
        // })
        //或 年龄是3 或者 名称为789
        //mongodb 的条件查询
        // db.db("demo4").collection("demo_user").find({$or:[{age:3},{name:789}]}).toArray((err, data) => {
        //         if (err) {
        //             res.send("查找失败")
        //         }
        //         res.send(data)
        //     })
        //大于 $gy 小于 $lt  大于等于 $gte  $Lte   $ne不等于
        // db.db("demo4").collection("demo_user").find({age:{$gt:2}}).toArray((err, data) => {
        //         if (err) {
        //             res.send("查找失败")
        //         }
        //         res.send(data)
        //     })
        db.db("demo4").collection("demo_user").find().toArray((err, data) => {
            if (err) {
                res.send("查找失败")
            }
            res.send(data)
        })
    })
})
//删除接口  remove()
app.get("/remove", (req, res) => {
    mongodb.connect(mongodbUrl, (err, db) => {
        if (err) {
            res.send("数据库连接失败")
        }
        //deleteMany
        //deteteOne
        db.db("demo4").collection("demo_user").deleteMany({ name: 456 }, (err, data) => {
            if (err) {
                res.send("删除失败")
            } else {
                res.send(data)
            }
        })
    })
})
//更新  update
app.get("/update", (req, res) => {
    mongodb.connect(mongodbUrl, (err, db) => {
        if (err) {
            res.send("数据库连接失败")
        }
        //updateMany
        //updateOne
        db.db("demo4").collection("demo_user").updateOne({ name: 789 }, { $set: { age: 5 } }, (err, data) => {
            if (err) {
                res.send("更新失败")
            }
            res.send(data)
        })
    })
})
app.listen(8000, function () {
    console.log("启动成功")
})

二 、mongoose

const express = require("express")
const app = express()
//操作mongodb数据库 默认端口号 27017
//mongodb模块 集合 没有办法设置规范
//mongoose模块 都是用来操作 mongodb数据库
//user集合:[{uname:"王一",upass:},{username:"王叔",upass:123}]
//遍历  obj.uname .username
const mongoose = require("mongoose")
//第一步:连接到本地的 mongodb数据库
mongoose.connect("mongodb://localhost/mongodb4")
//mysql:创建数据表 ->设计过程   id uname upass
//mongodb:没有数据表 只有集合
//通过mongoose模块 先来设计 集合的规范
//用户集合 users
//第二步:创建一个集合的规范!!!
//schema 模型 定义集合的规范 创建一个规范对象
let Schema = mongoose.Schema
let userSchema = new Schema({
    username: {
        type: "string",//规定属性的类型
        require:true //是否是必须的
    },
    upass: {
        type: "string",//规定属性的类型
        require:true //是否是必须的
    },
    uimg: {
        type: "string"//规定属性的类型
    }
})
//通过规范 创建一个集合模型 model
let User = mongoose.model("user", userSchema)//User对应的集合
//增加用户
app.get("/insert", (req, res) => {
    let obj = {
        username: "王二",
        upass:12
    }
    //通过模型创建一个符合要求的对象
    let u = new User({
        username: obj.username,
        upass:obj.upass
    })
    //如何放入集合中
    //.save()方法
    //{"username":"王一","upass":"12","_id":"61da81163f99056473267823","__v":0}
    u.save((err, data) => {
        if (err) {
            res.send("保存失败")
        } else {
            res.send(data)
        }
    })
})
//查找接口
app.get('/find', (req, res) => {
    User.find({ //自动形成数组
        // username:"王二"
    },(err, data) => {
        if (err) {
            res.send("查找错")
        } else {
            res.send(data)
        }
    })
    // User.findOne({ //{"_id":"61da81acb15eeac868c1f775","username":"王二","upass":"12","__v":0}
    //     "_id":"61da81acb15eeac868c1f775"
    //     },(err, data) => {
    //         if (err) {
    //             res.send("查找错")
    //         } else {
    //             res.send(data)
    //         }
    //     })
})
//删除接口
app.get("/remove", (req, res) => {
    User.remove({
        "_id":"61da81acb15eeac868c1f775"
    }, (err, data) => {
        if (err) {
            res.send("删除错误")
        } else {
            res.send(data)
        }
    })
})
//更新
app.get("/update", (req, res) => {
    User.findByIdAndUpdate("61da81163f99056473267823", { upass: "123465" }, (err, data) => {
        if (err) {
            res.send("更新失败")
        } else {
            res.send(data)
        }
    })
})
app.listen(8088)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值