MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

PyMongo upsert genera upsert deve essere un'istanza di errore bool

Il terzo argomento di update() di PyMongo è upsert e deve essere passato un booleano, non un dizionario. Modifica il tuo codice in:

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

Oppure passa upsert=True come argomento di una parola chiave:

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

Il tuo errore è stato probabilmente causato dalla lettura di update() nei documenti MongoDB. La versione JavaScript di update prende un oggetto come terzo argomento contenente parametri opzionali come upsert e multi . Ma poiché Python consente di passare argomenti di parole chiave a una funzione (a differenza di JavaScript che ha solo argomenti posizionali), ciò non è necessario e PyMongo prende invece queste opzioni come parametri di funzione opzionali.