Le troisième argument du update()
de PyMongo est upsert
et doit être passé un booléen, pas un dictionnaire. Remplacez votre code par :
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)
Ou passez upsert=True
comme argument de mot-clé :
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)
Votre erreur a probablement été causée par la lecture de update()
dans la documentation MongoDB. La version JavaScript de update
prend un objet comme troisième argument contenant des paramètres optionnels comme upsert
et multi
. Mais comme Python autorise le passage d'arguments de mots-clés à une fonction (contrairement à JavaScript qui n'a que des arguments de position), cela n'est pas nécessaire et PyMongo prend ces options comme paramètres de fonction facultatifs à la place.