Java 用于基于ID筛选列表并将此筛选列表映射到另一个字段的MongoDb聚合
在我的mongodb中,我有如下数据:Java 用于基于ID筛选列表并将此筛选列表映射到另一个字段的MongoDb聚合,java,mongodb,spring-boot,mongodb-query,aggregation,Java,Mongodb,Spring Boot,Mongodb Query,Aggregation,在我的mongodb中,我有如下数据: { "classes": [ { "classId": "SSC", "studentIds": [ "1" ] }, { "classId": "HSC", "studentIds": [
{
"classes": [
{
"classId": "SSC",
"studentIds": [
"1"
]
},
{
"classId": "HSC",
"studentIds": [
"2",
"3"
]
}
],
"students": [
{
"_id": "1",
"student": {}
},
{
"_id": "2",
"student": {}
},
{
"_id": "3",
"student": {}
}
],
}
"classes": [
{
"classId":"SSC",
"students": [
{
"id": "1",
"student": {}
}
]
},
{
"classId":"HSC",
"students": [
{
"id": "2",
"student": {},
},
{
"id": "3",
"student": {}
}
]
}
]
我需要一个聚合查询,以便返回如下所示的数据:
{
"classes": [
{
"classId": "SSC",
"studentIds": [
"1"
]
},
{
"classId": "HSC",
"studentIds": [
"2",
"3"
]
}
],
"students": [
{
"_id": "1",
"student": {}
},
{
"_id": "2",
"student": {}
},
{
"_id": "3",
"student": {}
}
],
}
"classes": [
{
"classId":"SSC",
"students": [
{
"id": "1",
"student": {}
}
]
},
{
"classId":"HSC",
"students": [
{
"id": "2",
"student": {},
},
{
"id": "3",
"student": {}
}
]
}
]
在这里我有一个ID列表。它应该过滤该id的学生列表,并获取该对象并将该对象放置在类数组中
我已尝试使用mongodb聚合解决此问题。但不幸的是,我无法为此编写查询。因此,我们可以使用聚合实现上述场景
我正在使用spring boot mongoTemplate。您可以使用
$map
和$filter
输入$map
数组创建学生字段,在学生数组中执行类
,并检查数组中的条件ID$filter
如何使用MongoTemplate编写此查询您是说在spring mongo模板中?如果是,那么我不知道java spring。您能帮我解决链接中的聚合查询吗: