Es ist ganz einfach, Sie haben zusätzliche/überflüssige geschweifte Klammern hinzugefügt, versuchen Sie Folgendes:
self.collection.find_and_modify(query={"recid":recid},
update={"$set": {"creation_date": str(datetime.now())}})
UPD (Erklärung, vorausgesetzt, Sie verwenden Python>=2.7):
Der Fehler tritt auf, weil Python denkt, dass Sie versuchen, einen Satz mit {}
zu erstellen Schreibweise:
Mit anderen Worten, Elemente einer Menge sollten hashbar sein:z. int
, string
. Und Sie übergeben ein dict
dazu, die nicht hashbar ist und kein Element einer Menge sein kann.
Siehe auch dieses Beispiel:
>>> {{}}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
Hoffe das hilft.