Mongoose

mongoose介绍

Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose
是 NodeJS 的驱动,不能作为其他语言的驱动。

mongoose特点

通过关系型数据库的思想来设计非关系型数据库

基于mongodb驱动,简化操作

mongoose的安装和使用

官网:https://mongoosejs.com/

安装

npm install mongoose

引入mongoose并连接数据库

新建一个目录创建一个js文件把mangoose引入进去,使用mongoose.connect()方法连接MongoDB,这是连接到本地数据库MySQL默认接口(27017)的最小配置,本地来连接失败可以尝试连接127.0.0.1,可以在url中指定多个参数

var mongoose=require('mongoose')

mongoose.connect('mongodb://127.0.0.1:27017/stu',function (err){
    if(!err){
        console.log('数据库连接成功')
    }
})

module.exports=mongoose

定义Schema

数据库中的 Schema,为数据库对象的集合。schema 是 mongoose 里会用到的一种数据模式,可以理解为表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备操作数据库的能力。

var mongoose=require('./coon')
var Schema=mongoose.Schema
var userSchema=new Schema(
    {
        username:String,
        pass:String,
        tel:String
    }
)
var User=mongoose.model('user',userSchema,'user');

module.exports=User

创建数据模型

定义好了 Schema,接下就是生成 Model。model 是由 schema 生成的模型,可以对数据库的操作。
注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,如果传入 2 个参数的话:这个模型会和与模型名称相同的、名称为复数的集合建立连接。如果传入 3 个参数的话:模型默认操作与第三个参数同名的集合

var User=mongoose.model('user',userSchema,'user');

mongoose增删改查(后端简单增删改查)

增加

<body>

    <form action="/zhuce" method="post">
        <p>
            <span>
                用户名
            </span>
            <input type="text" name="username">
        </p>
        <p>
            <span>
                密码
            </span>
            <input type="text" name="pass">
        </p>
        <p>
            <span>
                电话
            </span>
            <input type="text" name="tel">
        </p>
        <p>
            <input type="submit" value="提交">
        </p>
    </form>
</body>
//添加
router.post('/zhuce',function (req,res){
  console.log(req.body);
  userModel.create(req.body,function (err){
    if(!err){
      // res.send('注册成功')
      res.redirect('/userlist')
    }
  })
})

查看

<body>

<table>
    <thead>
    <tr>
        <th>username</th>
        <th>pass</th>
        <th>tel</th>
        <th>操作</th>
    </tr>
    </thead>
    <tbody>
    <% for (let i = 0; i < users.length;i++) { %>
        <tr>
            <td><%= users[i].username %></td>
            <td><%= users[i].pass %></td>
            <td><%= users[i].tel %></td>
            <td><a href="/edituser?id=<%= users[i]._id %>">编辑 </a>
                <a href="/del?id=<%= users[i]._id %>">删除</a>
            </td>
        </tr>
    <% } %>

    </tbody>

</table>
</body>
router.get('/userlist',async function (req,res){
  const r=await userModel.find().exec()
  console.log(r)
  res.render('user',{'users':r})
})

修改

点击修改跳转到edit页面,并通过id来查找到与之对应的数据 

<a href="/edituser?id=<%= users[i]._id %>">编辑 </a>

点击提交按钮提交修改后的数据

<body>
    <h3>编辑页面</h3>
    <form action="/update" method="post">
        <p>
            <span>
                用户名
            </span>
            <input type="text" value="<%= user.username %>" name="username">
        </p>

        <p>
            <span>
                电话
            </span>
            <input type="text" value="<%= user.tel %>" name="tel">
        </p>
        <input type="hidden" name="id" value="<%= user._id %>">
        <p>
            <input type="submit" value="提交">
        </p>
    </form>
</body>

 

//点击编辑查看对应数据
router.get('/edituser',async function (req,res){
  var user=await userModel.findById(req.query.id)
  console.log(user)
  res.render('edit',{user})
})
//编辑
router.post('/update',async function (req,res){
  var d=req.body
  console.log(d)
  var r=await userModel.update({'_id':d.id},{$set:{'username':d.username,'tel':d.tel}}).exec()
  res.redirect('/userlist')
})

删除

<a href="/del?id=<%= users[i]._id %>">删除</a>
//删除
router.get('/del',async function (req,res){
  var r =await userModel.remove({'_id':req.query.id})
  res.redirect('/userlist')
})

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值