Database

[{_id:"1",outputs:[{fileName:"fileName1",data:[{columnName1:3,columnName2:4,columnName5:1,columnName30:5},{columnName1:1,columnName2:2,columnName5:8,columnName30:3},]},{fileName:"fileName1",data:[{columnName1:3,columnName2:4,columnName5:9,columnName30:5},{columnName1:1,columnName2:2,columnName5:0,columnName30:3},]}]}]

Query

db.collection.aggregate([{$match:{_id:"1"}},{$project:{outputs:{$reduce:{input:"$outputs",initialValue:[],in:{$concatArrays:["$$value",{$cond:[{$eq:["$$this.fileName","fileName1"]},"$$this.data",[]]}]}}}}},{$unwind:"$outputs"},{$match:{"outputs.columnName1":{$gte:1,$lte:20}}},{$group:{_id:0,column1:{$push:"$outputs.columnName1"},column2:{$push:"$outputs.columnName2"},column5:{$push:"$outputs.columnName5"}}},{$set:{fileName:"fileName1",}}])

Result