mongodb统计问题,求大神解答

iru 2018-06-08 06:11:10
学生是属于某个班级,在学生集合中会有一列是班级标识;
学生有自己的刷卡情况,在另一个集合中存储,这个集合中没有班级标识。

我要怎么根据班级标识查出这个班所有学生总共的刷卡次数?
我用的开发语言是java,目前我所能想到的解决方案如下:
1、修改存储结构,在刷卡记录的集合中再增加记录,但是这个很不灵活,后面如果再增加其它统计会使冗余信息很多;
2、根据班级取出所有学生信息,遍历把学生id放进一个集合,再根据这个集合用in去统计
...全文
1146 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
LodonWu 2018-06-25
  • 打赏
  • 举报
回复
db.getCollection("class").aggregate( { $lookup: { from: "qty", localField: "student", foreignField: "student", as: "scoresDocs" } }, { $unwind: "$scoresDocs" }, {$group: { "_id": {"class" : "$class"} , "qty":{"$sum" : "$scoresDocs.qty"} } } )
rucypli 2018-06-17
  • 打赏
  • 举报
回复
用mongodb就是用冗余来提升性能 建议一个学生存一个document,包含各种班级 属性卡记录等等

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧