Database

[{a1:"value a1",a2:"value a2"},{a1:"value a3",a2:"value a4"},{a1:"value a5",a2:"value a6"}]

Query

db.collection.aggregate([{$project:{doc:{$filter:{input:{$objectToArray:"$$ROOT"},cond:{$ne:["$$this.k","_id"]}}}}},{$unwind:"$doc"},{$group:{_id:"$doc.k",values:{$push:"$doc.v"}}},{$group:{_id:null,data:{$push:{k:"$_id",v:"$values"}}}},{$replaceRoot:{newRoot:{$arrayToObject:"$data"}}}])

Result