Database

[{"array_a":[{"key1":"val1"},{"key2":"val2","key3":null}],"array_b":[{"key4":"val1"},{"key5":null,"key6":null}]}]

Query

db.collection.aggregate([{$set:{"array_a":{$map:{input:{$map:{input:"$array_a",in:{$objectToArray:"$$this"}}},in:{$filter:{input:"$$this",as:"kv",cond:{$ne:[{"$getField":{"field":"v","input":"$$kv"}},null]}}}}},"array_b":{$map:{input:{$map:{input:"$array_b",in:{$objectToArray:"$$this"}}},in:{$filter:{input:"$$this",as:"kv",cond:{$ne:[{"$getField":{"field":"v","input":"$$kv"}},null]}}}}}}},{$set:{"array_a":{$filter:{input:{$map:{input:"$array_a",in:{$arrayToObject:"$$this"}}},cond:{$ne:["$$this",{}]}}},"array_b":{$filter:{input:{$map:{input:"$array_b",in:{$arrayToObject:"$$this"}}},cond:{$ne:["$$this",{}]}}}}}])

Result