Database

[{_id:1,"_a":[{"_p":[{_pubId:{"CC":"EN"},_prid:"2",s:{c:{text:[{secId:"4"},{secId:"5"}]},d:{text:[{secId:"6"},{secId:"7"}]}}},{_pubId:{"CC":"CZ"},_pubRID:"4",s:{c:{text:[{secId:"8"},{secId:"9"}]}}}]},{"_p":[{_pubId:{"CC":"CZ"},_prid:"200",s:{c:{text:[{secId:"4"},{secId:"5"}]},d:{text:[{secId:"6"},{secId:"7"}]}}},{_pubId:{"CC":"BG"},_pubRID:"4",s:{c:{text:[{secId:"8"},{secId:"9"}]}}}]}]}]

Query

db.collection.aggregate([{"$unwind":"$_a"},{"$unwind":"$_a._p"},{"$match":{"_a._p._pubId.CC":"EN"}},{"$group":{"_id":"$_a._p._prid","pridOut":{"$push":{"$reduce":{"input":{"$objectToArray":"$_a._p.s"},"initialValue":[],"in":{"$concatArrays":["$$value",{"$reduce":{"input":"$$this.v.text","initialValue":[],"in":{"$concatArrays":["$$value",["$$this"]]}}}]}}}}}},{"$set":{"pridOut":{"$reduce":{"input":"$pridOut","initialValue":[],"in":{"$setUnion":["$$value","$$this"]}}}}},{"$set":{"pridOut":{"$map":{"input":"$pridOut","as":"eachSecId","in":{"$mergeObjects":[{"_prid":"$_id"},"$$eachSecId"]}}}}},{"$unwind":"$pridOut"},{"$replaceWith":"$pridOut"}])

Result