जैसा कि आपने कहा था कि elemMatch एक सरणी में केवल पहली वस्तु को पुनः प्राप्त करेगा, इसलिए आपको अपना आउटपुट प्राप्त करने के लिए कुल भविष्य का उपयोग करना होगा
MatchOperation match = Aggregation.match(Criteria.where("_id.teacherId").is("1").and("groups.students").in(11));
UnwindOperation unwind = Aggregation.unwind("groups");
GroupOperation group = Aggregation.group("_id").push("groups").as("groups").first("points").as("points");
Aggregation aggregation = Aggregation.newAggregation(unwind, match, group);
AggregationResults<BasicDBObject> groupResults = mongoTemplate.aggregate(aggregation,
CustomGroupsDocument.class, BasicDBObject.class);
List<BasicDBObject> result = groupResults.getMappedResults();