Database

[{"UserId":11111,"Personal":{"Email":"email@gmail.com","FirstName":"Name","LastName":"Last"},"Car":{"CarType":"NULL"}}]

Query

db.collection.aggregate([{"$project":{"data":{"$objectToArray":"$$ROOT"}}},{"$project":{"data":{$map:{input:"$data",in:{$cond:[{$eq:[{$type:"$$this.v"},"object"]},{k:"$$this.k",v:{$objectToArray:"$$this.v"}},"$$this"]}}}}},{"$project":{"data":{"$map":{"input":"$data","as":"d","in":{k:"$$d.k",v:{$map:{input:{$cond:[{$eq:[{$type:"$$d.v"},"array"]},"$$d.v",[]]},as:"v",in:{v:{$concat:["$$d.k",".","$$v.k"]}}}}}}}}},{"$project":{"finalKeys":{$concatArrays:[{"$reduce":{"input":"$data.v","initialValue":[],"in":{"$concatArrays":["$$value","$$this.v"]}}},"$data.k"]}}}])

Result