Java “春梦”;elemMatch";-获取结果中包含的其他字段以及指定的匹配数组元素

Java “春梦”;elemMatch";-获取结果中包含的其他字段以及指定的匹配数组元素,java,spring,mongodb,Java,Spring,Mongodb,我正在使用Spring+Jersey+Mongo开发一个web应用程序。我使用spring mongo的elemMatch获得一些特定的结果 下面是我的类,它将与mongo查询的输出进行映射 public class ABC { private String id; private String dId; private String lId; private String hId; private String pId; private

我正在使用Spring+Jersey+Mongo开发一个web应用程序。我使用spring mongo的elemMatch获得一些特定的结果

下面是我的类,它将与mongo查询的输出进行映射

public class ABC {
    private String id;

    private String dId;

    private String lId;

    private String hId;

    private String pId;

    private List<GeneralData> generalRecords;

    private List<String> fhistory;

    private List<String> mhistory;

    private List<String> specialNotes;
}

public class GeneralData {
    private Object data;

    private HistoryFilter dataType;
}
我想要基于dId、lId、hId、pId以及特定数据类型(比如报告)的常规记录上的elemMatch的记录。 下面是我的标准代码

Criteria matchCriteria = Criteria.where("dId").is(dId).and("lId").is(lId).and("hId").is(hId).and("pId").is(pId).and("generalRecords.dataType").is("REPORTS");
Criteria elementMatchCriteria = Criteria.where("generalRecords").elemMatch(Criteria.where("dataType").is("REPORTS"))

BasicQuery query = new BasicQuery(matchCriteria.getCriteriaObject(), elementMatchCriteria.getCriteriaObject());

ABC abc = mongoOperations.findOne(query, ABC.class);
上述结果

ABC [id=55ccda7fe4b03cc159c2ce17, dId=null, lId=null, hId=null, pId=null, generalRecords=[GeneralData [data=55ccdde7e4b03cc159c2ce18, dataType=REPORTS]], fhistory=null, mhistory=null, specialNotes=null]
一般记录是完美的,正如所期望的,但我只想包括dId、lId、hId、pId、fHistory、MHHistory和特殊注释。我已经试过:

query.fields().include('fieldName')
此外,还有一些奇怪的查询组合,但没有任何帮助。 有人能提出一些建议吗

query.fields().include('fieldName')