Mongoose常用的增删改查方法

Mongoose常用的增删改查方法

一、增加
Model的方法
  1. new Model({}).save(function(err,data){})
 new UserModel({username, type, password:md5(password)}).save(function (error, user) {
   res.cookie('userid', user._id, {maxAge: 1000*60*60*24})
   const data = {username, type, _id: user._id} 
   res.send({code: 0, data})
 })
  • 这里采用了md5进行加密
  • 并使用了cookie
二、删除
三、修改
Model的方法
  1. Model.findByIdAndUpdate({},{},function(err,oldData){}
  UserModel.findByIdAndUpdate({_id: userid}, user, function (error, oldUser) {
    if(!oldUser) {
      // 通知浏览器删除userid cookie
      res.clearCookie('userid')
      // 返回返回一个提示信息
      res.send({code: 1, msg: '请先登陆'})
    } else {
      // 准备一个返回的user数据对象
      const {_id, username, type} = oldUser
	  /* 合并两个对象*/
      const data = Object.assign({_id, username, type}, user)
      // 返回
      res.send({code: 0, data})
    }
  })
  • 参数说明
    • 第一个对象:条件:_id
    • 第二个对象:需要更新的数据
    • 第三个参数为回调函数:回调函数的第二个参数为旧数据
    • 这三个参数是比较常用的参数,想要详细知道其他参数 请 点击
  • 对于例题的说明
    • 前台传递过来一个user,想要修改user的信息,这个user是在cookie中保存的
    • 数据库中如果查找不到就要通知浏览器删除cookie
    • 如果找到就要合并两个对象,完成更新
  • 对于Object.assgin()的说明
    • 可以接受多个参数,但是只有第一个参数为目标对象
    • 将出第一个参数之外的对象的属性和属性值合并到目标对象身上来
    • 最终返回目标对象,详情 点击
    • 使用对象的三点运算符也是可以完成的
四、查询
Model的方法
  1. Model.findOne({}, {}, function (error, data) {}单个
  UserModel.findOne({_id: userid}, {password: 0, __v: 0}, function (error, user) {
    if(user) {
      res.send({code: 0, data: user})
    } else {
      // 通知浏览器删除userid cookie
      res.clearCookie('userid')
      res.send({code: 1, msg: '请先登陆'})
    }

  })
  • 参数说明
    • 第一个对象:条件:对象的任何属性
    • 第二个对象:需要过滤的数据 0表示不显示 ,1表示显示
    • 第三个参数为回调函数:回调函数的第二个参数为查找到的数据
    • 这三个参数是比较常用的参数,想要详细知道其他参数 请 点击
  1. Model.find({}, {},{} function (error, docs) {}单个或多个,返回数组
  • 参数说明 共四个参数
    • 第一个参数:对象:查询的条件
      • 属性值可以是正则表达式
      • $gte表示 >对于年龄进行筛选
      • $or属于MongoDB的逻辑操作符,表示或者,除他之外还有$and,$not,$nor,逻辑操作符后面跟一个数组
    • 第二个参数:对象:过滤属性同findOne
    • 第三个参数:对象:对于查找到的文档进行操作
      • skip 表示跳过
      • limit 表示限制
      • sort 表示排序 详情 点击
    • 第四个参数:回调函数
      • 回调函数的第二个参数为查到返回的数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值