因业务需求,在 MongoDB 使用中需要处理行列转换。如有集合 scores, 记录了学生English、Math、PE三科成绩,需将 English、Math、PE 各科成绩分别作为列值显示。
CLASS | STUDENTID | SUBJECT | SCORE |
Class one | 1 | English | 84 |
Class one | 1 | Math | 77 |
Class one | 1 | PE | 69 |
Class one | 2 | English | 81 |
Class one | 2 | Math | 80 |
… |
期望输出如下:
CLASS | STUDENTID | English | Math | PE |
Class one | 1 | 84 | 77 | 69 |
… | … | |||
… | … |
由于 MongoDB 没有提供相应的 api,实现按分组方式处理,但操作起来比较麻烦。
可以使用集算器, 用 pivot 函数实现比较容易。
<