C'est simple, vous avez ajouté des accolades supplémentaires/redondantes, essayez ceci :
self.collection.find_and_modify(query={"recid":recid},
update={"$set": {"creation_date": str(datetime.now())}})
UPD (explication, en supposant que vous êtes sur python>=2.7):
L'erreur se produit car python pense que vous essayez de créer un ensemble avec {}
notation :
En d'autres termes, les éléments d'un ensemble doivent être hachables :par ex. int
, string
. Et vous passez un dict
à celui-ci, qui n'est pas hachable et ne peut pas être un élément d'un ensemble.
Voir également cet exemple :
>>> {{}}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
J'espère que ça aide.