// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return db.collection('information')
.where({
audit: event.audit
}).orderBy('adddatetime','desc')
.skip(event.m) // 跳过结果集中的前 10 条,从第 11 条开始返回
.limit(event.n) // 限制返回数量为 10 条
.get()
.then(res => {
for(let i = 0 ;i<res.result.data.lenght;i++){
return db.collection('user').where({
_openid: res.result.data[i]._openid
}).get().then(re => {
console.log(re);
res.result.data[i].avatarUrl=re.data.avatarUrl;
res.result.data[i].nickName = re.data.nickName
res.result.data[i].phone = re.data.phone
}).catch(er => {
console.error(er)
return er
})
}
return res
})
.catch(err => {
console.error(err)
return err
})
}
怎么实现多表联合查询,在以往的数据库中利用left join 就可以实现。但是现在是访问信息表里面有Openid 去查找用户表的中信息。并且返回一个集合,里面包含两表中的数据。
试试吧
for (let i = 0; i < res.result.data.lenght; i++) {
var user = await db.collection('user').where({
_openid: res.result.data[i]._openid
}).get()
console.log(user)
res.result.data[i].avatarUrl = user.data.avatarUrl;
res.result.data[i].nickName = user.data.nickName
res.result.data[i].phone = user.data.phone
}
这是个异步操作,return的时候第二次查询还没结果呢
目前的疑惑是如何往返回的结果集中循环遍历然后填装一个新字段