收藏
回答

小程序数据表嵌套查询

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 工具 wxba10ba0c05de35cb 2.3.0

- 当前 Bug 的表现(可附上截图)

db.collection('child').limit(12).skip(0).get().then(res => {

    db.collection('collection').where({

        openid: wx.getStorageSync('openid')

    }).get().then(list => {


    })

})

这样的嵌套查询小程序陷入长时间等待状态

顺序查询的话会有异步的问题,是否有类似async/await的方法,或者多表联合查询的方法


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


最后一次编辑于  2018-09-28  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

19 个回答

  • 邓坤力
    邓坤力
    2018-09-28

    请贴下完整代码,云函数中就是使用 async/await 异步返回的。比如你贴的代码需要异步返回可以这样



    2018-09-28
    赞同
    回复 11
    • 浅言
      浅言
      2018-09-28


      我是小程序中的代码,没有使用云函数,是一样的吗

      2018-09-28
      赞同
      回复
    • 邓坤力
      邓坤力
      2018-09-28回复浅言

      一样的。我看这两个数据库语句是不存在依赖关系的,可以并行请求,不需要一个做完再做另一个

      2018-09-28
      赞同
      回复
    • 邓坤力
      邓坤力
      2018-09-28回复浅言


      2018-09-28
      赞同
      回复
    • 孙善国
      孙善国
      2018-09-28回复邓坤力

      大哥 救命啊!   我想把一个表中的 某几条数据中的某个字段更新一下数值  该如何操作。   就是 如何把 截图里的 num字段 不写死  以一个数组的形式 传进来  因为 不同的id 对应 num字段 会更新不同的值


      2018-09-28
      赞同
      回复
    • 浅言
      浅言
      2018-09-28回复邓坤力

      这几种方法我都试了一下,发现结果都是一样的,出现的结果是开发者工具端无问题,

      wx.cloud.callFunction({}).then(res => {

      //   真机编译预览不进入这里

      }).catch(

      //   进入这里

      )

      在点击真机调试的时候,数据又出来了。。。

      2018-09-28
      赞同
      回复
    查看更多(6)
  • 半寸灰
    半寸灰
    2018-09-28

    exports.main = async(event, context) => {


    let   res=     await db.collection('xxx')

    .where({

            openid

        }).get()



    }


    云函数有

    2018-09-28
    赞同
    回复 1
    • 浅言
      浅言
      2018-09-28

      好的吧,我去试试云函数

      2018-09-28
      赞同
      回复
  • 孙善国
    孙善国
    2018-09-28

    哥 向你请教一下  我想把一个表中的 某几条数据中的某个字段更新一下数值  该如何操作  有没有一次性 全部更新的方法  我看文档说的是更新一条数据 我现在用的for循环一条条更新 虽然能实现更新  但 我觉得不不应该这样做 。

    2018-09-28
    赞同
    回复 4
    • 浅言
      浅言
      2018-09-28

      如果是更新多条记录的同一个字段的话,试试where+update看看

      2018-09-28
      赞同
      回复
    • 孙善国
      孙善国
      2018-09-28回复浅言

      比如 我通过 id 去找到每一条数据  我要更改的字段是 num     我再where里 id:_in(数组id)  在update里  num:_in(数组值)    这么写???

      2018-09-28
      赞同
      回复
    • 浅言
      浅言
      2018-09-28回复孙善国

      你应该问问官方,他这个的数据库操作语句我也不熟

      2018-09-28
      赞同
      回复
    • LE
      LE
      2018-11-16回复孙善国

      云函数可以一次更新多条记录

      2018-11-16
      赞同
      回复