È semplice, hai aggiunto parentesi graffe extra/ridondanti, prova questo:
self.collection.find_and_modify(query={"recid":recid},
update={"$set": {"creation_date": str(datetime.now())}})
UPD (spiegazione, supponendo che tu sia su python>=2.7):
L'errore si verifica perché python pensa che tu stia tentando di creare un set con {}
notazione:
In altre parole, gli elementi di un set dovrebbero essere hashable:ad es. int
, string
. E stai passando un dict
ad esso, che non è hashable e non può essere un elemento di un set.
Inoltre, guarda questo esempio:
>>> {{}}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
Spero di esserti stato d'aiuto.