Het is simpel, je hebt extra/redundante accolades toegevoegd, probeer dit eens:
self.collection.find_and_modify(query={"recid":recid},
update={"$set": {"creation_date": str(datetime.now())}})
UPD (uitleg, ervan uitgaande dat u python>=2.7 gebruikt):
De fout treedt op omdat python denkt dat je een set probeert te maken met {}
notatie:
Met andere woorden, elementen van een set moeten hashable zijn:b.v. int
, string
. En je passeert een dict
toe, wat niet hashable is en geen element van een set kan zijn.
Zie ook dit voorbeeld:
>>> {{}}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
Ik hoop dat dat helpt.