首页 > 其他 > 详细

mongoose 各种执行

时间:2017-08-27 09:15:35      阅读:455      评论:0      收藏:0      [点我收藏+]

mongoose各种写法比较,以User模型查询为例进行

第一种写法

//findone两个参数,第一个参数是查询的条件,第二个参数是查询的返回结果,结果中有两个参数分别是错误的反馈,和正确的返回结果。
User.findOne({id:id},(err,doc)=>{
  
})

第二种写法

//直接查询,then之后返回两个Promise函数,第一个是then之前的事件如果成功执行,第二个是失败执行。
User.findOne({id:id}).then(res=>{
  
})

多条件查询适合用then

router.get(‘/article/getlist‘, (req, res) => {
  Article.find().sort({_id:-1}).populate(‘category‘).then(doc => {
    res.send(doc)
  })
})

用exec()分开写

// 可以先定义条件,链式写法
var goodsModel = Goods.find(params).limit(pageSize).skip(skip);
// 第一次定义之后依然可以链式继续定义
goodsModel.sort({ ‘salePrice‘: sort });
// 最后用exec()执行。
goodsModel.exec(function (err, doc) {

  if (err) {
    res.json({
      status: ‘1‘,
      msg: err.message
    })
  } else {
    res.json({
      status: ‘0‘,
      msg: ‘‘,
    
    })
  }
})

如果是连续两个或者多个then

查询首次执行then,默认遵守promise规则,但是从第二个开始的then,你必须手动返回一个成功或者失败的promise执行 return  Promise.reject(),来指定执行then后的第一个还是第二个。

mongoose 各种执行

原文:http://www.cnblogs.com/wuyushuo/p/7439568.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!