Database

[{text:"blabla",data:{foo:[{id:2,status:"ready"},{id:3,status:"notready"},],bar:[{id:4,status:"ready"},{id:5,status:"notready"},]}},{text:"blabla",data:{foo:[{id:3,status:"notready"}],bar:[{id:5,status:"notready"}]}}]

Query

db.collection.aggregate([{$match:{"data.bar.status":"ready"}},{$project:{"data.foo":{$filter:{input:"$data.foo",as:"foo",cond:{$eq:["$$foo.status","ready"]}}},"data.bar":{$filter:{input:"$data.bar",as:"bar",cond:{$eq:["$$bar.status","ready"]}}}}}])

Result