收藏
回答

如何使用lookup联表查询?


我这么写的意思是根据score表(只有学号没有名字)的学号,去匹配返回student表(有名字)的名字

但就是返回不了结果。。。

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

4 个回答

  • 天山明月
    天山明月
    2020-03-27

    2楼老张提供的解决方法是正确的,我稍做补充,把回复内容统一贴在这里,方便大家阅读。

    按照官方文档写,小程序端res.result一定是undefined。楼主的云函数除了加await关键字,还需要取消then...catch...处理。

    const cloud = require('wx-server-sdk')
    cloud.init()
    const db = cloud.database() // 必须在init()之后定义// 云函数入口函数
    exports.main = async (event, context) => {
      // 推荐添加try...catch处理
      try {
        // 添加await关键字 
        return await db.collection("score").aggregate()
          .lookup({
            from: "student",
            localField: "studentId",
            foreignField: "studentId",
            as: "student"
        }).end()
            // .then(res => console.log(res))   // 注释掉此行代码
            // .catch(err => console.error(err))    // 注释掉此行代码
      }catch(e){
        console.log(e)
      }
    }
    
    2020-03-27
    有用
    回复
  • 不煽情
    不煽情
    2020-03-08

    请问这个问题解决了么?我怎么也是显示null啊

    2020-03-08
    有用
    回复
  • 老张
    老张
    2019-12-07

    return await就行了。

    2019-12-07
    有用
    回复 6
    • mistletoe🍀
      mistletoe🍀
      2019-12-07
      我用了,也不行哦
      2019-12-07
      回复
    • mistletoe🍀
      mistletoe🍀
      2019-12-07
      那个数组就显示Array,里面内容看不到
      2019-12-07
      回复
    • 老张
      老张
      2019-12-07回复mistletoe🍀
      是的,看不到是对的。在小程序端展开看吧。
      2019-12-07
      回复
    • mistletoe🍀
      mistletoe🍀
      2019-12-07
      这边现在null,啊啊啊快疯了
      2019-12-07
      回复
    • 老张
      老张
      2019-12-08回复mistletoe🍀
      完全不懂调试,不疯才怪。console.log了解一下,只显示Array,就直接log出来啊,不要只log一个res,一层层往下log
      2019-12-08
      回复
    查看更多(1)
  • mistletoe🍀
    mistletoe🍀
    2019-12-07

    救救孩子吧呜呜~~

    2019-12-07
    有用
    回复 2
    • mistletoe🍀
      mistletoe🍀
      2019-12-07
      我把官网的例子导进去了,但是bookList就显示Array呀,数据也没有显示出来,怎么弄呀,太难了~~
      2019-12-07
      回复
    • 小马哥
      小马哥
      2020-03-07
      me  too
      2020-03-07
      回复
登录 后发表内容
问题标签