0
我和翻译在Spring数据的MongoDB MongoDB的这种挣扎查询:春数据MongoDB的聚集查询
db.applicates.aggregate(
[
{
"$match": {
"claimantCategory": 1
}
},
{
$group : {
_id : { month: { $month: "$claimDate" }, day: { $dayOfMonth: "$claimDate" }, year: { $year: "$claimDate" } },
count: { $sum: 1 }
}
}
]
)
我tryed这一点:
TypedAggregation<Applicate> aggregation = newAggregation(Applicate.class,
match(Criteria.where("claimantCategory").is(claimantCategory)),
project("claimDate")
.andExpression("dayOfMonth("+"\""+"claimDate"+"\""+")").as("day")
.andExpression("month(claimDate)").as("month")
.andExpression("year(claimDate)").as("year"),
group(fields().and("day").and("month").and("year"))
.count().as("count"));
AggregationResults<ClaimsAggregator> groupResults = mongoOperations.aggregate(aggregation, ClaimsAggregator.class);
但它失败例外:可以“T从BSON String类型转换为Date
我Applicate.class:
public class Applicate {
@Id
private String id;
private int claimId;
@DateTimeFormat (iso = DateTimeFormat.ISO.DATE)
private Date claimDate;
private int codeOfForm;
private String claimStatus;
private String fio;
private int claimantCategory;
private int serviceCode;
private String subserviceName;
private String departmentName;
//getter,setters, constructor
}
个
ClaimsAggregator.class:
public class ClaimsAggregator {
private String claimDate;
private int count;
....
}
替换行'.andExpression( “请将dayOfMonth(” + “\” “+” claimDate “+” \ “” + “)”)。作为( “日”)'与此'.andExpression( “请将dayOfMonth(claimDate)”)。如( “天”)'。 – chridam
@chridam,谢谢你的建议。刚刚测试过,现在它在日期字段中返回null。什么可能导致? – MoOFueL
不太确定,可能是某些没有'claimDate'字段的文档? – chridam