在dthistory集合中(第一张图),想要根据用户openid分组,算出每个用户score的最大值(也就是最高分),并输出用户相应的头像和昵称,请问要怎么写呢?? 1.开始想用group,后来发现只能输出分组的openid和最高分 2.后来又建了个集合放用户信息(User第二张图),想通过云函数(第三张图)用lookup来查询返回,但是调用云函数后输出值为0,(如第四张图) 请大家看看是什么原因呢?或者有没有什么好的解决办法,由于刚接触不是很懂,谢谢大家!
小程序云开发,可以给一个表分组后再获取表内相关信息吗?lookup为什么值为0?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-showbo 2022-04-05 12:03关注
多字段分组,排序字段应该是maxscore,已经不是socre了,返回的是聚合后的数据,效果如下
云函数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)) } })
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 前端echarts坐标轴问题
- ¥15 CMFCPropertyPage
- ¥15 ad5933的I2C
- ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
- ¥15 数学建模求思路及代码
- ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
- ¥15 谁会P4语言啊,我想请教一下
- ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
- ¥50 求解vmware的网络模式问题 别拿AI回答
- ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳