Database
db={"suggestions":[{"id":"sid"},],"votes":[{"suggestionId":"sid","voteType":"upVote","user":{"id":"apiCallUserId"}},{"suggestionId":"sid","voteType":"downVote","user":{"id":"broadcasterUserId"}},{"suggestionId":"sid","voteType":"noVote","user":{"id":"noVoteUserId"}},]}
Query
db.suggestions.aggregate([{$match:{id:"sid"}},{$lookup:{from:"votes",localField:"id",foreignField:"suggestionId",as:"votes"}},{$addFields:{votesLength:{$size:"$votes"},hasUpvoted:{$and:[{$in:["apiCallUserId","$votes.user.id"]},{$in:["upVote","$votes.voteType"]}]},broadcasterUpvoted:{$and:[{$in:["broadcasterUserId","$votes.user.id"]},{$in:["upVote","$votes.voteType"]}]}},},{$project:{votes:0}},])