收藏
回答

云数据库联合查询不知道怎么获取到最终数据

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 需求 客户端 wxf71c1814570ae563 2.6.2

- 需求的场景描述(希望解决的问题)

如下是我的代码,要实现的功能为:有两张表做联合查询,第一张表查询出若干条数据,然后根据这若干条数据查询第二张表,由于第一张表能查询出的数据条数是动态的,所以在查询第二张表时写了一个for循环,想在for循环里写一个数组把所有遍历到的数据写进去,但这个实现不了,因为数组是动态的,所以数组下标写为j,但这个j在for循环里每次读到的都是代码中arry_length这个值



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

process_chain: db.RegExp({

regexp: user_openid

woptions:'i'

})

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

console.log('user_openid', user_openid)

console.log('res.data', res.data)

console.log('res.data.length', res.data.length)

var arry_length = res.data.length

for (var j = 0; j < arry_length;j++){


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

_id: res.data[j].id_release_information

}).get().then(

res => {

console.log('j:', j)

console.log('分享记录:',res.data)

this.setData({

shareRecordData: res.data

})

}).catch(err => {

console.log('[查询失败]')

})

}

}).catch(err => {

console.log('[查询失败]')

})

}


- 希望提供的能力


回答关注问题邀请回答
收藏

1 个回答

  • withnate
    withnate
    2019-05-16

    for (var j = 0; j < arry_length;j++){  改成let j=0试试。

    2019-05-16
    有用
    回复 3
    • @GOD
      @GOD
      2019-05-16

      十分感谢!改成let 后解决,但为啥写成var不行呢


      2019-05-16
      回复
    • \
      \
      2019-05-18回复@GOD

      let只在就近的函数块里生效,不会被函数外部影响

      2019-05-18
      回复
    • @GOD
      @GOD
      2019-05-18回复\

      ok 多谢

      2019-05-18
      回复
登录 后发表内容