收藏
回答

云函数中如何关联2张表查询组合数据?

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

- 假如我有2张表 A和B,A存储了杂货店的上架商品,B存储了杂货店每种商品的价格,并且使用键值goods_id存储着上架商品的ID。

那么我想一次性查询出上架商品和其对应的价格,组在一个json给小程序返回,这个操作在云函数中怎么操作? 使用return总是拿不到值,可能是异步的问题?


- 求各位大侠帮忙看看,怎么写呢?


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

4 个回答

  • 老张
    老张
    2018-11-02

    象mysql那样的多表联合查询是不可能会有的。

    云数据库看上去是参考mongoDB的设计,以后也只会继续参考mongo的。

    mongo目前都没法提供多表查询,更不要说小程序云数据库了。

    2018-11-02
    有用 1
    回复
  • iFeng
    iFeng
    2018-11-02

    确实有点无奈,但你的需求我会传达一下的

    2018-11-02
    有用 2
    回复
  • 拾忆
    拾忆
    2018-11-01

    来自官方的打击


    2018-11-01
    有用 2
    回复 6
    • w
      w
      2018-11-01

      谢谢!

      2018-11-01
      回复
    • w
      w
      2018-11-02

      好无奈

      2018-11-02
      回复
    • 拾忆
      拾忆
      2018-11-02回复w

      也许以后会更新的,这个只是暂时的,官方没说以后绝对不会支持联合查询。

      2018-11-02
      回复
    • w
      w
      2018-11-02回复拾忆

      希望吧,目前只能这么去操作:

      // 云函数入口函数
      exports.main = async (event, context) => {
        // collection 上的 get 方法会返回一个 Promise,因此云函数会在数据库异步取完数据后返回结果
        let goods= await db.collection('goods').get()
       
          for (let item of goods.data) {
            let id = item._id;
            //查询商品价
            let _price = await db.collection('goods_prices').where({
              goods_id: id
            }).get()
            item.goods_price = _price
          }
          return goods
         
      }


      2018-11-02
      1
      回复
    • 拾忆
      拾忆
      2018-11-02回复w

      没办法的办法,配额不够记得提前申请

      2018-11-02
      回复
    查看更多(1)
  • maxm
    maxm
    2019-12-20

    可以使用聚合查询lookup


    参见


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

    2019-12-20
    有用 1
    回复
登录 后发表内容