Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于基于ID筛选列表并将此筛选列表映射到另一个字段的MongoDb聚合_Java_Mongodb_Spring Boot_Mongodb Query_Aggregation - Fatal编程技术网

Java 用于基于ID筛选列表并将此筛选列表映射到另一个字段的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": [

在我的mongodb中,我有如下数据:

{
  "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
    输入
    数组创建学生字段,在学生数组中执行
    $filter
    ,并检查数组中的条件ID

如何使用MongoTemplate编写此查询您是说在spring mongo模板中?如果是,那么我不知道java spring。您能帮我解决链接中的聚合查询吗: