mongoose 各种执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoose 各种执行相关的知识,希望对你有一定的参考价值。

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 各种执行的主要内容,如果未能解决你的问题,请参考以下文章

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

vbscript 各种自定义代码片段 - 有关详细信息,请参阅注释

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

小程序各种功能代码片段整理---持续更新

mongoose 给文档的子数组的头部插入数据

Mongoose withTransaction 仅部分执行