Spring Data - MongoDb聚合$ ifNull

Fra*_*nda 5 java spring mongodb spring-data

db.collection.aggregate([
    {$match : { name : "name" } },
    {$project: {
        name: 1,
        sent: { 
            $size: {
                "$ifNull": [ "$audience", [] ]
            } 
        }
    }
}]);
Run Code Online (Sandbox Code Playgroud)

如何使用Spring数据进行上述mongo聚合?

小智 6

我知道这是一篇旧帖子,您可能已经找到了答案,但是,为了其他人,我将其发布在这里。

Aggregation aggregation = Aggregation.newAggregation(
.match(Criteria.where("name").is("name"))
.project("name")        
    .and(ArrayOperators.Size.lengthOfArray(ConditionalOperators.ifNull("audience").then(Collections.emptyList()))).as("sent")
);
Run Code Online (Sandbox Code Playgroud)