小程序云开发,可以给一个表分组后再获取表内相关信息吗?lookup为什么值为0?

在dthistory集合中(第一张图),想要根据用户openid分组,算出每个用户score的最大值(也就是最高分),并输出用户相应的头像和昵称,请问要怎么写呢?? 1.开始想用group,后来发现只能输出分组的openid和最高分 2.后来又建了个集合放用户信息(User第二张图),想通过云函数(第三张图)用lookup来查询返回,但是调用云函数后输出值为0,(如第四张图) 请大家看看是什么原因呢?或者有没有什么好的解决办法,由于刚接触不是很懂,谢谢大家!

img

img

img

img

多字段分组,排序字段应该是maxscore,已经不是socre了,返回的是聚合后的数据,效果如下

img

云函数getRank用下面的


// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env:'环境id'
});
const db=cloud.database();
const _=db.command;
const $=_.aggregate;

// 云函数入口函数
exports.main = async (event, context) => {
  return await db.collection('test').aggregate().group({
    _id:{
      openId:'$openId',
      nickName:'$nickName',
      avatarUrl:'$avatarUrl'
  },
    maxscore:$.max('$score')
  })
  .sort({maxscore:-1})
  .end()
}

demo.js

wx.cloud.init({env: 'dbw3dev-5gf8fz972fd029e2'});
const db = wx.cloud.database();
Page({
    onLoad: function() {
      wx.cloud.callFunction({
        name:'getRank'
      })
      .then(res=>console.log('success',res))
      .catch(res=>console.log('error',res))
    }
})

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632