Database
[{"_id":"convertible1","dateTime":"01/01/2021",},{"_id":"unconvertible1","dateTime":"01 April 2021"},{"_id":"convertible2","FirstDate":"2021-05-01"},{"_id":"unconvertible2","Status.date":534432}]
Query
db.collection.aggregate([{"$addFields":{"chosenDateField":{/** put your list of date fields in $ifNull clause*/"$ifNull":["$dateTime",{"$ifNull":["$FirstDate","$Status.date"]}]}}},{/** try 2 types of date parsing; return null if error*/"$addFields":{"dd/mm/YYYY":{$dateFromString:{dateString:"$chosenDateField",format:"%d/%m/%Y",onError:null}},"YYYY-mm-dd":{$dateFromString:{dateString:"$chosenDateField",format:"%Y-%m-%d",onError:null}}}},{/** project a field "sanitizedDate" that would be null only if both 2 types of date parsing failed*/"$addFields":{"sanitizedDate":{$ifNull:["$dd/mm/YYYY","$YYYY-mm-dd"]}}},{/** output to a helper collection for later processing*/"$out":{"coll":"sanitizedCollection"}}])