PyMongo के update()
. का तीसरा तर्क upsert
है और एक बूलियन पारित किया जाना चाहिए, एक शब्दकोश नहीं। अपना कोड इसमें बदलें:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, True)
या upsert=True
. पास करें कीवर्ड तर्क के रूप में:
self.word_counts[source].update({'date':posttime}, {"$inc" : words}, upsert=True)
update()
. के बारे में पढ़कर आपकी गलती होने की संभावना है मोंगोडीबी दस्तावेज़ों में। update
. का JavaScript संस्करण किसी ऑब्जेक्ट को इसके तीसरे तर्क के रूप में लेता है जिसमें वैकल्पिक पैरामीटर होते हैं जैसे upsert
और multi
. लेकिन चूंकि पायथन एक फ़ंक्शन के लिए कीवर्ड तर्कों को पारित करने की अनुमति देता है (जावास्क्रिप्ट के विपरीत जिसमें केवल स्थितीय तर्क होते हैं), यह अनावश्यक है और इसके बजाय PyMongo इन विकल्पों को वैकल्पिक फ़ंक्शन पैरामीटर के रूप में लेता है।