Argumen ketiga untuk update() P PyMongo adalah upsert dan harus melewati boolean, bukan kamus. Ubah kode Anda menjadi:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)
Atau berikan upsert=True sebagai argumen kata kunci:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)
Kesalahan Anda kemungkinan disebabkan oleh membaca tentang update() dalam dokumen MongoDB. Versi JavaScript dari update mengambil objek sebagai argumen ketiga yang berisi parameter opsional seperti upsert dan multi . Tetapi karena Python memungkinkan meneruskan argumen kata kunci ke suatu fungsi (tidak seperti JavaScript yang hanya memiliki argumen posisi), ini tidak perlu dan PyMongo mengambil opsi ini sebagai parameter fungsi opsional.