MongoDB 如何对数组计算后获取最大值记录
集合数据为嵌套列表结构,对嵌套列表中的值计算后取最大值的记录。如有集合 scores 记录学生的各科成绩,查询平均成绩最好的学生,其数据如下:
{ |
使用集算器, 根据最好的平均成绩返回记录,实现比较容易。
1、编写脚本 scores.dfx:
A | B | |
1 | =mongo_open("mongodb://localhost:27017/raqdb") | / 连接 MongoDB 数据库 |
2 | =mongo_shell(A1,"scores.find(, {_id:0})").fetch() | / 获取 scores 数据 |
3 | =A2.maxp@a(Scores.avg(Score)) | / 根据最好的平均成绩返回记录 |
4 | >A1.close() | / 关闭连接 |
A2 | StudentID | Scores |
S0001 | [[Chinese ,75.0],[ Maths, 81.0],[English, 78.0]] | |
S0002 | [[Chinese ,80.0],[ Maths, 78.0],[English, 76.0]] | |
S0003 | [[Chinese ,78.0],[ Maths, 75.0],[English, 72.0]] |
A3 | StudentID | Scores |
S0001 | [[Chinese ,75.0],[ Maths, 81.0],[English, 78.0]] | |
S0002 | [[Chinese ,80.0],[ Maths, 78.0],[English, 76.0]] |
若需要求各科成绩之和再取最大值或最小值,集算器也可类似实现。
英文版