收藏
回答

云开发查询问题,这样的查询应该怎么写?

A 表里面有一个字段保存的是对象数组,对象数组里面有用户的 openId,想查询 A 表的时候,把 B 表里面对应 openId 的用户信息带过来

请问大佬们,该怎么写查询语句

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

2 个回答

  • 跨商通
    跨商通
    2022-06-08

    有且只有唯一办法:

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/aggregate/Aggregate.lookup.html

    2022-06-08
    有用 1
    回复 4
    • 廉生
      廉生
      2022-06-09
      这个文档我看过了,但是例子里面好像没有针对数组对象里面的某个键做连接查询的 😂
      2022-06-09
      回复
    • 跨商通
      跨商通
      2022-06-09回复廉生
      1、直接用“user.openId”做键去链接试试;
      2、unwind了解一下。lookup之前,先unwind
      2022-06-09
      回复
    • 廉生
      廉生
      2022-06-09回复跨商通
      方案二似乎可行,可以不查出来,虽然数据结构有点奇怪,但是不用做两次查询了 😂 蟹蟹老哥
      2022-06-09
      回复
    • 跨商通
      跨商通
      2022-06-09回复廉生
      记得点“有用”呵
      2022-06-09
      回复
  • 廉生
    廉生
    2022-06-09

    最后用了上面老哥提供的解决方案,贴下代码

      return await collection
        .aggregate()
        .match({
          pid,
          date,
          subId,
        })
        .project({
          user: 1,
        })
        .unwind({
          path: '$user',
        })
        .lookup({
            from: 'user',
            localField: 'user.openId',
            foreignField: 'openId',
            as: 'user.userInfo',
        })
        .end();
    
    2022-06-09
    有用
    回复
登录 后发表内容