两个集合联合查询,没有按顺序输出我要的结果
发布于 6 年前 作者 na03 9114 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

如下是我的代码,预期要实现的功能为:两个集合联合查询(这里有一个for循环遍历所查到的多条数据,现在有两条数据,所以会循环查询两次),第一个集合查询出数据把他放进数组

arry_process_nodef,然后在第二个集和操作过程中把他读出来,现在问题是,在第二个集合查询过程中,没有正确输出我j=0时的数组(arry_process_nodef)值:[“o-pp75Yud88psPI1utBASnUffUiM+@GOD”]

db.collection(‘process_information_col’).where({

process_chain: db.RegExp({

regexp: user_openid,

options:‘i’

})

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

var arry_length = res.data.length

var arry_process_nodef = new Array()

var that=this

console.log(res.data.pro:’,res.data)

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

console.log(‘j:’,j)

arry_share_record_process = res.data[j].process_chain.split(";");

for (let arry_process_num = 0; arry_process_num < arry_share_record_process.length-1; arry_process_num++){

console.log(‘arry_process_num:’, arry_process_num)

arry_process_nodef[arry_process_num] = arry_share_record_process[arry_process_num+1]

console.log(‘arry_process_nodef:’, arry_process_nodef[arry_process_num])

}

db.collection(‘release_content_col’).where({

_id: res.data[j].id_release_information

}).get().then(

res => {

console.log(‘arry_process_nodef:’, arry_process_nodef)

console.log(‘res.data.rel:’, res.data)

arry_share_record[j] = res.data[0]

if (j == arry_length-1){

setTimeout(function () {

console.log(‘arry_share_record’, arry_share_record[0])

that.setData({

shareRecordData: arry_share_record

})

}, 1000) //延迟时间 这里是1秒

}

}).catch(err => {

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

})

}

}).catch(err => {

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

})

}

  • 希望提供的能力
回到顶部