古建雄
古建雄
  • 发布:2023-11-16 23:39
  • 更新:2023-11-17 08:15
  • 阅读:251

lookup的数据怎么进行筛选字段返回

分类:uniCloud

如题我如果需要连表查询uni-id-users表,只想返回nickname和avatar_file 这两个字段 而不是这个表所有字段 怎么写呢

const res = await db.collection('social').aggregate().lookup({    
                from: 'uni-id-users', //要联查哪个表    
                localField: 'user_id', //本表字段    
                foreignField: '_id', //关联字段    
                as: 'user_info' //别名    
            }).end()
2023-11-16 23:39 负责人:无 分享
已邀请:
套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

JQL提供了更简单的联表查询方案
建议使用以下写法,再配合field

// 直接关联多个表为虚拟联表再进行查询,旧写法,目前更推荐使用getTemp进行联表查询  
const res = await db.collection('order,book').where('_id=="1"').get() // 直接关联order和book之后再过滤  

// 使用getTemp先过滤处理获取临时表再联表查询,推荐用法  
const order = db.collection('order').where('_id=="1"').getTemp() // 注意结尾的方法是getTemp,对order表过滤得到临时表  
const res = await db.collection(order, 'book').get() // 将获取的order表的临时表和book表进行联表查询  
  • 古建雄 (作者)

    关键jql只能2张表联查 我需要关联4张表 我现在的解决办法是 获取到其他的数据后 循环data new Promise 再去获取user表的数据 这样效率太慢了

    2023-11-17 20:58

要回复问题请先登录注册