sql >> Databáze >  >> NoSQL >> MongoDB

PyMongo upsert vyvolá upsert musí být instancí bool error

Třetí argument update() PyMonga je upsert a musí být předán jako boolean, nikoli jako slovník. Změňte svůj kód na:

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

Nebo předejte upsert=True jako argument klíčového slova:

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

Vaše chyba byla pravděpodobně způsobena čtením o update() v dokumentech MongoDB. JavaScriptová verze update bere objekt jako svůj třetí argument obsahující volitelné parametry jako upsert a multi . Ale protože Python umožňuje předávání argumentů klíčových slov funkci (na rozdíl od JavaScriptu, který má pouze poziční argumenty), je to zbytečné a PyMongo bere tyto možnosti jako volitelné parametry funkce.



  1. Azure DataBricks Stream foreach selže s NotSerializableException

  2. Nápady na škálování chatu v AWS?

  3. Aktualizujte pole hodnotou jiného pole v dokumentu

  4. NoSQL (MongoDB) vs Lucene (nebo Solr) jako vaše databáze