Database
db={"post":[{post:"foo",votes:[{direction:1},{direction:-1},{direction:1}]},{post:"bar",votes:[{direction:1},{direction:1},{direction:1}]},{post:"buz",votes:[{direction:-1},{direction:-1},{direction:-1}]}]}
Query
db.post.aggregate([{$project:{post:1,votes:1,upVotes:{$size:{$filter:{input:"$votes.direction",cond:{$eq:["$$this",1]}}}}}},{$sort:{upVotes:1}}])