Devi usare $sort
con $each
operatore e quindi specifichi semplicemente il nome del campo nidificato (non l'intero percorso come nel tuo esempio), prova:
User.findOneAndUpdate({ _id: user._id }, {
$push: {
"notification.notidata": {
"$each": [ { data: { para: "Your Ad " + "'" + thisad.heading + "'" + " has been successfully submitted." } } ],
"$sort": {"notidate": -1}
}
}
}, {new: true})