求大神讲解一下如何mongo如何多维度聚合

qq_41651317 2019-07-19 11:01:41
就比如我现在有一个表里面有:
{school :1 ,class :1 ,student :20},
{school :1 ,class :2 ,student :30},
{school :2,class :1 ,student :20},
{school :2 ,class :2 ,student :30},

我希望查询后 就变成
-----------------------------------------------------------------------------------------------------------------------
{
school :1
class : {
1:{
student :20
}
2:{
student :30
}
}
}

{
school :2
class : {
1:{
student :20
}
2:{
student :30
}
}
}

-----------------------------------------------------------------------------------------------------------------
刚入门 mongo 求大神讲解。
...全文
269 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxch257 2021-01-06
  • 打赏
  • 举报
回复
上面那个没有完全符合要求,修改如下: { "_id" : ObjectId("5ff52fc71eaf662d24bfea23"), "school" : 1, "class" : { "1" : { "student" : 20 }, "2" : { "student" : 30 }, "3" : { "student" : 10 } } } { "_id" : ObjectId("5ff52fc71eaf662d24bfea24"), "school" : 2, "class" : { "1" : { "student" : 20 }, "2" : { "student" : 33 } } }
lxch257 2021-01-05
  • 打赏
  • 举报
回复
使用集算器SPL,实现比较容易: A、如果每个班只有一个学生,就用A5 { "_id" : ObjectId("5ff4141d9f919c3978df71dd"), "school" : 1, "class" : { "1" : { "student" : 20 } } } { "_id" : ObjectId("5ff4141d9f919c3978df71de"), "school" : 1, "class" : { "2" : { "student" : 30 } } } { "_id" : ObjectId("5ff4141d9f919c3978df71df"), "school" : 2, "class" : { "1" : { "student" : 20 } } } { "_id" : ObjectId("5ff4141d9f919c3978df71e0"), "school" : 2, "class" : { "2" : { "student" : 30 } } } B、如果每个班有多个学生,可用A6、A7的map结构 { "_id" : ObjectId("5ff4141e9f919c3978df71e5"), "school" : 1, "class" : { "1" : [ { "student" : 20 } ] } } { "_id" : ObjectId("5ff4141e9f919c3978df71e6"), "school" : 1, "class" : { "2" : [ { "student" : 30 } ] } } { "_id" : ObjectId("5ff4141e9f919c3978df71e7"), "school" : 2, "class" : { "1" : [ { "student" : 20 } ] } } { "_id" : ObjectId("5ff4141e9f919c3978df71e8"), "school" : 2, "class" : { "2" : [ { "student" : 30 }, { "student" : 33 } ] } } C、如果每个班有多个学生,可用A8的数组结构 { "_id" : ObjectId("5ff4141e9f919c3978df71e9"), "school" : 1, "class" : { "1" : [ { "student" : [ 20 ] } ] } } { "_id" : ObjectId("5ff4141e9f919c3978df71ea"), "school" : 1, "class" : { "2" : [ { "student" : [ 30 ] } ] } } { "_id" : ObjectId("5ff4141e9f919c3978df71eb"), "school" : 2, "class" : { "1" : [ { "student" : [ 20 ] } ] } } { "_id" : ObjectId("5ff4141e9f919c3978df71ec"), "school" : 2, "class" : { "2" : [ { "student" : [ 30, 33 ] } ] } }
qq_41651317 2019-07-29
  • 打赏
  • 举报
回复
顶一下!!!!!!!!!!!!!11

1,746

社区成员

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

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