För $addToSet för att inte lägga till ett element måste elementet helt matcha ett befintligt element. Med createdOn eftersom det är aktuellt är det lätt att se varför det aldrig händer i ditt fall.
Så $addToSet fungerar bra för element med Date fält, men det kräver en exakt matchning, precis som med alla andra typer.