Złożoność czasowa $ addToset vs $ push, gdy element nie istnieje w macierzy

Biorąc pod uwagę: Connection is Safe = True, więc powrót aktualizacji będzie zawierał informacje o aktualizacji.

Powiedz, że mam dokumenty, które wyglądają tak:

[{'a': [1]}, {'a': [2]}, {'a': [1,2]}]

I wystawiam:

coll.update({}, {'$addToSet': {'a':1}}, multi=True)

Wynik byłby:

{u'connectionId': 28,
 u'err': None,
 u'n': 3,
 u'ok': 1.0,
 u'updatedExisting': True
}

Nawet gdy przychodzą dokumenty już mają tę wartość. Aby tego uniknąć, mogę wydać polecenie.

coll.update({'a': {'$ne': 1}}, {'$push': {'a':1}}, multi=True)

Jakie jest porównanie złożoności czasu dla $ addToSet vs. $ push z $ ne sprawdzeniem?

questionAnswers(3)

yourAnswerToTheQuestion