sql >> Base de Datos >  >> NoSQL >> MongoDB

PyMongo upsert lanza upsert debe ser una instancia de error bool

El tercer argumento de update() de PyMongo es upsert y se debe pasar un valor booleano, no un diccionario. Cambia tu código a:

self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)

O pasa upsert=True como argumento de palabra clave:

self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)

Su error probablemente fue causado por leer acerca de update() en los documentos de MongoDB. La versión JavaScript de update toma un objeto como su tercer argumento que contiene parámetros opcionales como upsert y multi . Pero dado que Python permite pasar argumentos de palabras clave a una función (a diferencia de JavaScript, que solo tiene argumentos posicionales), esto es innecesario y PyMongo toma estas opciones como parámetros de función opcionales.