Database

[{type:"out",user:"id1",orderPayment:[{_id:"id1",paid:true,paymentSum:40},{_id:"id2",paid:true,paymentSum:60,},{_id:"id3",paid:false,paymentSum:50,}]},{type:"in",user:"id1",orderPayment:[{_id:"id1",paid:true,paymentSum:10},{_id:"id2",paid:true,paymentSum:10,},{_id:"id3",paid:false,paymentSum:77,}]}]

Query

db.collection.aggregate([{$project:{type:1,paid:{$filter:{input:"$orderPayment",cond:"$$this.paid"}},noPaid:{$filter:{input:"$orderPayment",cond:{$not:"$$this.paid"}}}}},{$set:{paid:{$sum:"$paid.paymentSum"},noPaid:{$sum:"$noPaid.paymentSum"}}},{$group:{_id:"$type",paid:{$sum:"$paid"},noPaid:{$sum:"$noPaid"}}}])

Result