Третият аргумент към update()
на PyMongo е upsert
и трябва да се предава булева, а не речник. Променете кода си на:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)
Или предайте upsert=True
като аргумент за ключова дума:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)
Вашата грешка вероятно е причинена от четене за update()
в документите на MongoDB. Версията на JavaScript на update
приема обект като трети аргумент, съдържащ незадължителни параметри като upsert
и multi
. Но тъй като Python позволява предаване на аргументи на ключова дума на функция (за разлика от JavaScript, който има само позиционни аргументи), това е излишно и вместо това PyMongo приема тези опции като незадължителни параметри на функцията.