Database
[{_id:"docID",per:[{_pid:"pid1",thing1:"pid1_thing1",thing2:"pid1_thing2"}],ore:[{_oid:"oid1",thing1:"oid1_thing1",thing2:"oid1_thing2"}],tre:[{_tid:"tid1",thing1:"tid1_thing1",thing2:"tid1_thing2"}]}]
Query
db.collection.aggregate([{$group:{_id:"$_id",array:{$push:{$setUnion:["$per","$ore","$tre"]}}}},{$unwind:"$array"},{$unwind:"$array"}])