SpringData mongodb - GroupOperation дает неверную ссылку
У меня есть агрегатный запрос Mongodb, где мне нужно сгруппировать по идентификатору. Запрос отлично работает в оболочке mongodb. но я получаю недопустимую ссылку в API-интерфейсе Springdata mongodb:
{
$group: {
_id: "$resourceId",
likeCount: {
$sum: {
$cond: [{
$eq: ["$like", true]
}, 1, 0]
}
},
dislikeCount: {
$sum: {
$cond: [{
$eq: ["$dislike", true]
}, 1, 0]
}
}
}
},
Эквивалент Spring Data MongoDB:
// Stage 2 : Conditional Operation for like and dislike
ProjectionOperation projectLikeAndDislike = Aggregation.project()
.and(when(Criteria.where("like").is(true)).then(1).otherwise(0)).as("likedStatus")
.and(when(Criteria.where("dislike").is(true)).then(1).otherwise(0)).as("dislikedStatus");
// Stage 3 : Group by Resource Id
GroupOperation groupResourcesWithLikeAndDislikeCount = Aggregation.group("resourceId").sum("likedStatus")
.as("likeCount").sum("dislikedStatus").as("dislikeCount");
И я получаю недопустимую ссылку: referenceId.