Database

db={paymentOrder:[{name:"Order 1",description:"Order 1 description",amount:3,charges:[ObjectId("5a934e000102030405000000"),ObjectId("5a934e000102030405000001"),ObjectId("5a934e000102030405000002")]}],charge:[{amount:4,user:"userId1",status:"active",description:"charge description 1",creation_date:ISODate("2020-04-19T14:00:00.000Z")},{amount:6,user:"userId2",status:"hold",description:"charge description 2",creation_date:ISODate("2020-04-19T14:00:00.000Z")},{amount:5,user:"userId3",status:"idle",description:"charge description 3",creation_date:ISODate("2020-04-19T14:00:00.000Z")}]}

Query

db.paymentOrder.aggregate([{$match:{_id:ObjectId("5a934e000102030405000003")}},{$lookup:{from:"charge",let:{chargeIds:"$charges"},pipeline:[{$match:{$expr:{$eq:["$user","userId1"]}}}],as:"charges"}}])

Result