Třetí argument update()
PyMonga je upsert
a musí být předán jako boolean, nikoli jako slovník. Změňte svůj kód na:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)
Nebo předejte upsert=True
jako argument klíčového slova:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)
Vaše chyba byla pravděpodobně způsobena čtením o update()
v dokumentech MongoDB. JavaScriptová verze update
bere objekt jako svůj třetí argument obsahující volitelné parametry jako upsert
a multi
. Ale protože Python umožňuje předávání argumentů klíčových slov funkci (na rozdíl od JavaScriptu, který má pouze poziční argumenty), je to zbytečné a PyMongo bere tyto možnosti jako volitelné parametry funkce.