Complejidad de tiempo de $ addToset vs $ push cuando el elemento no existe en el Array
Dado: la conexión es segura = verdadera, por lo que la devolución de la actualización contendrá información actualizada.
Digamos que tengo unos documentos que se parecen a:
[{'a': [1]}, {'a': [2]}, {'a': [1,2]}]
Y lo emito:
coll.update({}, {'$addToSet': {'a':1}}, multi=True)
El resultado sería:
{u'connectionId': 28,
u'err': None,
u'n': 3,
u'ok': 1.0,
u'updatedExisting': True
}
Incluso cuando vienen los documentos ya tienen ese valor. Para evitar esto podría emitir un comando.
coll.update({'a': {'$ne': 1}}, {'$push': {'a':1}}, multi=True)
¿Cuál es la comparación de complejidad de tiempo para $ addToSet vs. $ push con un cheque de $ ne?