MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

PyMongo upsert lance upsert doit être une instance d'erreur bool

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.