1***@qq.com
1***@qq.com
  • 发布:2022-05-18 11:49
  • 更新:2022-05-19 15:37
  • 阅读:282

云函数查询报错

分类:uniCloud
2022-05-18 11:49 负责人:无 分享
已邀请:
雷峰

雷峰

你不贴代码怎么看得出来哪里的问题

  • 1***@qq.com (作者)

    const db = uniCloud.database()

    const dbCmd = db.command

    this.orderWhere = {

    status: 2,

    goodsInOrder: dbCmd.elemMatch({

    server: '627cb1df994b190001455871',

    serverStatus: false

    })

    }

    2022-05-18 13:57

1***@qq.com

1***@qq.com (作者)

代码

  • 雷峰

    你的orderWhere查询的地方怎么写的?

    2022-05-19 10:49

  • 1***@qq.com (作者)

    回复 雷峰: 这样写的

    2022-05-19 11:30

1***@qq.com

1***@qq.com (作者)

代码

1***@qq.com

1***@qq.com (作者)

这样写的

  • 雷峰

    你这个表的goodsInOrder字段数据结构确定都是数组和都有server和serverStatus的吧?不然会报错的

    2022-05-19 11:45

  • 1***@qq.com (作者)

    回复 雷峰: 都有

    2022-05-19 11:49

  • 1***@qq.com (作者)

    我在JQL查询器上都可以查出来的的

    2022-05-19 11:50

1***@qq.com

1***@qq.com (作者)

jql能查出来

  • 雷峰

    你就把jql的这段代码放在云函数环境执行呢?要是没问题估计就是你封装的这个函数的bug了

    2022-05-19 15:32

  • 1***@qq.com (作者)

    回复 雷峰: 直接把条件写到云函数内就可以,但是条件不是固定的,还是只能传参

    2022-05-19 15:39

1***@qq.com

1***@qq.com (作者)

一个就是我直接讲条件写在云函数where内,是传参这种方法,请求入参一模一样,但是还是一个成功,一个失败

  • 雷峰

    不要写setInterval这种东西,你具体业务需求是什么?按照你封装的代码,这个promise在最外层await,只会有最早的一个成功,然后就执行结束了

    2022-05-19 16:07

  • 雷峰

    promise的第一个resolve回调只要执行了,就相当于这个promise已经结束为成功状态了,你里面还写setInterval重复执行肯定是有一些问题的,你具体的需求如果必须用到这种,那也不要用定时器,Promise.all Promise.race都是替代方案

    2022-05-19 16:09

  • 1***@qq.com (作者)

    回复 雷峰:轮询订单

    2022-05-19 16:25

  • 雷峰

    回复 1***@qq.com: 那你就写setTimeout+函数递归。每一次的查询保持独立

    2022-05-19 17:29

  • 雷峰

    回复 1***@qq.com: 云函数内不要用setInterval

    2022-05-19 17:29

该问题目前已经被锁定, 无法添加新回复