Database

[{_id:"1",name:"event1",guests:[{phone:"+12222222222",/**_id: new ObjectId,*/attended:"Y"},{phone:"+12344466666",/**_id: new ObjectId,*/attended:"Y"},{phone:"+11234567890",/**_id: new ObjectId,*/attended:"N"},{phone:"+14443332222",/**_id: new ObjectId,*/attended:"Y"},{phone:"+19090909090",/**_id: new ObjectId*/attended:"N"}],},{_id:"2",name:"event2",guests:[{phone:"+11111111111",/**_id: new ObjectId,*/attended:"N"},{phone:"+12222222222",/**_id: new ObjectId,*/attended:"Y"},{phone:"+133333333333",/**_id: new ObjectId,*/attended:"Y"}],},]

Query

db.collection.find({_id:"1"},{_id:1,name:1,guests:1,totalGuests:{$size:"$guests"},attendedGuests:{$size:{"$filter":{input:"$guests",cond:{$eq:["$$this.attended","Y"]}}}}})

Result