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.

0 ответов

Другие вопросы по тегам