Database

[{"_id":"1","blocks":[{"port":[{"name":"portA1","portType":{"function":"input"}}]}]},{"_id":"2","blocks":[{"port":[{"name":"portB1","portType":{"function":"input"}},{"name":"portB2","portType":{"function":"output"}}]}]}]

Query

db.collection.aggregate([{"$unwind":"$blocks"},{"$unwind":"$blocks.port"},{"$match":{"blocks.port.portType.function":"input"}},{$project:{_id:0,portType:"$blocks.port.portType",name:"$blocks.port.name"}}])

Result