Ressemble à $addToSet fait la même chose que votre commande :$push avec un $ne check . Les deux seraient O(N)
https://github.com/mongodb /mongo/blob/master/src/mongo/db/ops/update_internal.cpp
si la vitesse est vraiment importante, pourquoi ne pas utiliser un hachage :
au lieu de :
{'$addToSet': {'a':1}}
{'$addToSet': {'a':10}}
utiliser :
{$set: {'a.1': 1}
{$set: {'a.10': 1}