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.