Para $addToSet
para no agregar un elemento, el elemento debe completamente coincidir con un elemento existente. Con createdOn
siendo la hora actual, es fácil ver por qué eso nunca sucede en su caso.
Entonces $addToSet
funciona bien para elementos con Date
campos, pero requiere una coincidencia exacta, al igual que con cualquier otro tipo.