2016-05-11 31 views
5
db.collection.aggregate([ 
    {$match : { name : "name" } }, 
    {$project: { 
     name: 1, 
     sent: { 
      $size: { 
       "$ifNull": [ "$audience", [] ] 
      } 
     } 
    } 
}]); 

Yay verisi ile yukarıdaki mongo kümelemesini nasıl yapabilirim?

cevap

0

Bunun eski bir yazı olduğunu ve cevabı bulmuş olabileceğinizi biliyorum, ama sadece başkalarının iyiliği için buraya gönderiyorum.

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