Pour $addToSet pour ne pas ajouter d'élément, l'élément doit complètement correspondre à un élément existant. Avec createdOn étant l'heure actuelle, il est facile de comprendre pourquoi cela ne se produit jamais dans votre cas.
Donc $addToSet fonctionne bien pour les éléments avec Date champs, mais il nécessite une correspondance exacte, comme avec n'importe quel autre type.