É simples, você adicionou chaves extra/redundantes, tente isto:
self.collection.find_and_modify(query={"recid":recid},
update={"$set": {"creation_date": str(datetime.now())}})
UPD (explicação, supondo que você esteja em python>=2.7):
O erro ocorre porque o python pensa que você está tentando fazer um conjunto com
{}
notação:Em outras palavras, os elementos de um conjunto devem ser hashable:por exemplo,
int
, string
. E você está passando um dict
a ele, que não é hashable e não pode ser um elemento de um conjunto. Veja também este exemplo:
>>> {{}}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
Espero que ajude.