sql >> Databáze >  >> NoSQL >> MongoDB

Pymongo API TypeError:Unhashable dict

Je to jednoduché, přidali jste extra/nadbytečné složené závorky, zkuste toto:

self.collection.find_and_modify(query={"recid":recid}, 
                                update={"$set": {"creation_date": str(datetime.now())}})

UPD (vysvětlení, za předpokladu, že používáte python>=2.7):

K chybě dochází, protože si python myslí, že se pokoušíte vytvořit sadu s {} zápis:

Jinými slovy, prvky množiny by měly být hašovatelné:např. int , string . A předáváte dict k němu, který není hašovatelný a nemůže být prvkem množiny.

Podívejte se také na tento příklad:

>>> {{}}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'

Doufám, že to pomůže.




  1. jak spočítat pole $lookup v mongo db?

  2. Je možné přepnout dividendu a dělitele dotazovacího operátoru $mod MongoDB?

  3. Jak používat django společně s mongoengine?

  4. Chcete-li vypočítat věk v MongoDB, převeďte rozdíl data na roky