mongodb

一:数据库

1·1:什么是mongodb

mongodb 是一款非关系型数据库

优点: 速度快 成本低

缺点 没有统一的标准 没有很好的官方支持

1·2:数据库的分类

关系型数据库 :MySql Oracal SQL Server DB2

非关系型数据库: mongodb redis

1·3:mongodb和其他数据库的区别

表---->集合

字段----->文档

1·4:mongodb的安装
  • 选择好安装软件的路径(安装的路径中不要有种问空格特殊符号等内容)

  • 安装好之后,在bin的同级创建一个data文件夹

  • data文件夹里创建一个db文件夹

  • 以管理员的身份打开cmd

  • 将路径切换到安装软件的bin的路径下【cd…(退回上一级),d:进入d盘,cd 文件名:进入该文件】

  • cmd中执行: mongod.exe --install --dbpath mongodb的安装路径的db路径 --logpath mongodb的安装的data文件夹的路径\log.txt

  • cmd启动服务net start mongodb

2·1:可视化的管理工具

2·1·1:增

语法:db.集合名.insert({json})

db.demo.insert({"_id":1,"name":"xixi","age":20}) 
db.demo.save({"_id":1,"name":"xixi","age":20})

insert与save的区别:

nsert 在存的时候id相同就报错

save id相同就替换

2·1·2:查询

语法:

db.集合名.find() 查询全部

db.集合名.find({key:val你的条件}) 条件查询

2·1·3:修改

语法:db.集合名.update(

​ {key,val}你要修改的是谁你先要查询出来,

​ {$set:{key,val}}你要把查询出来的修改成什么

)

2·1·4:删

remove

三:node链接mongodb

3·1:mongoose

mongoose是node操纵mongodb的一个第三方库

他里面有非常便捷的数据库操纵方法 让对数据库操纵变得更简单

3·2:mongoose的使用:

第一步:npm下载

第二步:创建文件index.js和文件夹db

第三步:封装数据库

// 我是数据库连接的封装模块
// 1.引用
let mongoose=require("mongoose");
// 2.设置连接信息
//"mongodb://localhost:27017/lip"[表的信息]
mongoose.connect("mongodb://localhost:27017/lip",{ useNewUrlParser: true,useUnifiedTopology: true })
// 3.开始连接
let db=mongoose.connection;
// 4.监听连接到底是个成功还是失败
db.on('error', console.error.bind(console, 'connection error:'));
db.on("open",()=>{
    console.log("数据库连接ok")
})

// 5创建数据库操纵对象 schema对象
//uname,upwd就是向数据库添加的字段名
let demoSchema=new mongoose.Schema({
    uname:String,
    upwd:String
})
// 6设置操纵的集合(有坑)
//在mongoose操作mongodb的时候,会默认在填写的集合名上加一个s,
//解决办法就是,在创建集合的时候,自己提前就加上s
let demomodel=mongoose.model("lips",demoSchema)

module.exports=demomodel
增:save()
let express = require("express")
let demomodel = require("../db")
let router = express.Router()
router.get("/zhuce", (req, res) => {
    //使用 demomodel(是数据库连接的对象)
    //给数据库存放的值
    let zhucedata = new demomodel({
        name: "lidaren",
        age: 18
    })
    //开始存放数据
    zhucedata.save().then((ok) => {
        console.log(ok)
    })
   //添加操作
    res.send({ msg: "你好,注册用户", data: "来注册来了" })
})

module.exports = router
删:remove()
let express=require("express");

let demomodel=require("../db")

let router=express.Router()

// 删除的接口
router.get("/shanchu",(req,res)=>{

// 数据库的删除动作
demomodel.remove(
    {name:"lidaren"}
).then((ok)=>{
    console.log(ok)
})
res.send({msg:"我是删除的接口"})  
})

module.exports = router
改:update()
let express = require("express")

let router = express.Router()
let demomodel = require("../db")
router.get("/gengxin", (req, res) => {

    demomodel.update(
        { age: 18 },
        { $set: { age: 99 } }
    ).then((ok) => {
        console.log(ok)
    })

    res.send({ "text": "更新的数据" })
})
module.exports = router
查:find()
let express = require("express")
let router = express.Router()

let demomodel = require("../db")

router.get("/denglu", (req, res) => {
        demomodel.find(
                { name: "lidaren", age: 18 }
                ).then((ok) => {
                        console.log(ok)
                })

        res.send({ msg: "你好,登录页面" })
})

module.exports = router
路由页面配置服务器
let  express=require("express")

let app=express()

let dl=require("./routers/denglu")
let zc=require("./routers/zhuce")
let gx=require("./routers/updata")
let sc=require("./routers/remove")

app.use("/denglu",dl)
app.use("/zhuce",zc)
app.use("/gengxin",gx)
app.use("/shanchu",sc)

app.listen(3000)


let zc=require("./routers/zhuce")
let gx=require("./routers/updata")
let sc=require("./routers/remove")

app.use("/denglu",dl)
app.use("/zhuce",zc)
app.use("/gengxin",gx)
app.use("/shanchu",sc)

app.listen(3000)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值