mongoose基本操作流程

mongoose操作流程

  1. 安装mongoose
    $ cnpm i mongoose -D
  2. 连接数据库
var mongoose = require( 'mongoose )
//mongoose.connect(连接地址/数据库名称)
mongoose.connect( 'mongodb://127.0.0.1:27017/students' )
  1. Schema定义
    它可以理解为数据库模型骨架,可以看作工厂中模具一样,好比一个茶杯,喝水是茶杯最终的功能,茶杯本身就像是Model,那么茶杯的批量生产是需要靠工厂的模具成型的。Schema不仅定义了文档结构和使用性能,还可以有扩展插件、实例方法、静态方法、复合索引、文档生命周期钩子。
  • Schema 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
  • Model 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
  • Entity 由Model创建的实体,他的操作也会影响数据库
// 1. 定义Schema
// var studentsSchema = new mongoose.Schema( options ) //options是用来定义存储数据的数据类型
var studentsSchema = new mongoose.Schema( {
// 数据: 数据类型
id: Number,
name: String,
age: Number
})
// 2. 定义模型
// var studentsModel = mongoose.model( 集合名称,骨架 )
var studentsModel = mongoose.model( 'students', studentsSchema )
// 3. 定义实体
var students = new studentsModel()
  • 搭建express框架
    $exoress -e mongoose
  • 安装依赖包
    $cnpm install
  • 测试框架是否搭建好
    $npm start
    在app.js里面新增应用级路由
app.use('/users',usersRouter);

文件上方引入该路由
var mine = require( '/routes/mineRouter ’)
在 routes的文件夹下新建mine.js文件
代码如下


var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
//接受表单发来的信息
let { username,password } = req.query  //解构赋值
if()
  res.render('mine' ,{
  mine: JSON.stringify({ 
  username,password
     })
  })
});
module.exports = router;
//暴露接口

在view文件新建mine.ejs(显示内容)
<% -mine%> 解析内容
在终端安装mongoose模块
$cnpm i mongoose -D
在mine。js的文件夹中引入mongoose模块

链接数据库(链接前确认数据库已经启动)

mongoose.connect(数据库地址)

  • 定义骨架
var studentSchema = new mongoose.Schema({
id:number,        //数据名称:数据类型
name: String
})
  • 定义模型

var studentsModel = mongoose.model( 'students',studentSchema ) //集合名称,骨架


  • 定义实体
var students = new studentsModel()

mongo的增删改查

  1. 增加数据
  • 增加的数据名称
    集合名称.save((error)=>{
    if(error) throw error
    提示信息
    })
  1. 查询数据
  studentsModel.find({},( error,result)=>{
    if(error) throw error         //抛错
     console.log( result[0]._id )//查询的数据
     })
  1. 删除

      studentsModel.find({},( error,result )=>{
       if( error ) throw error
      var id = result[0]._id      //通过ID删除数据
     studentsModel.findById( id,( error,data ) =>{
     if( error) throw error       //抛错
       data.remove(()=>{        //提示信息
     console.log( '删除成功' )
           })
         })
     })
  1. 修改
       studentsModel.find({},( error,result)=>{
       if( error ) throw error
       const id = result[0]._id
       studentsModel.findById( id,( error,data ) =>{
       if(error) throw error
      data.name='修改信息'
       data.save()
         })
       })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值