MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

PyMongo-Upsert wirft Upsert muss eine Instanz eines boolschen Fehlers sein

Das dritte Argument für update() von PyMongo ist upsert und muss ein boolescher Wert übergeben werden, kein Wörterbuch. Ändern Sie Ihren Code in:

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

Oder übergeben Sie upsert=True als Schlüsselwortargument:

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

Ihr Fehler wurde wahrscheinlich durch das Lesen von update() verursacht in der MongoDB-Dokumentation. Die JavaScript-Version von update nimmt ein Objekt als drittes Argument, das optionale Parameter wie upsert enthält und multi . Aber da Python erlaubt, Schlüsselwortargumente an eine Funktion zu übergeben (im Gegensatz zu JavaScript, das nur Positionsargumente hat), ist dies unnötig und PyMongo nimmt diese Optionen stattdessen als optionale Funktionsparameter.