Det tredje argument til PyMongos update() er upsert og skal bestå en boolesk, ikke en ordbog. Skift din kode til:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)
Eller send upsert=True som et søgeordsargument:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)
Din fejl var sandsynligvis forårsaget af at læse om update() i MongoDB-dokumenterne. JavaScript-versionen af update tager et objekt som dets tredje argument, der indeholder valgfrie parametre som upsert og multi . Men da Python tillader at sende søgeordsargumenter til en funktion (i modsætning til JavaScript, som kun har positionsargumenter), er dette unødvendigt, og PyMongo tager i stedet disse muligheder som valgfri funktionsparametre.