Het derde argument voor PyMongo's update()
is upsert
en moet een boolean worden doorgegeven, geen woordenboek. Verander je code in:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)
Of geef upsert=True
door als zoekwoordargument:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)
Je fout is waarschijnlijk veroorzaakt door te lezen over update()
in de MongoDB-documenten. De JavaScript-versie van update
neemt een object als zijn derde argument met optionele parameters zoals upsert
en multi
. Maar aangezien Python het doorgeven van trefwoordargumenten aan een functie toestaat (in tegenstelling tot JavaScript dat alleen positionele argumenten heeft), is dit niet nodig en neemt PyMongo deze opties in plaats daarvan als optionele functieparameters.