sql >> Databasteknik >  >> NoSQL >> MongoDB

PyMongo upsert kastar upsert måste vara en instans av bool-fel

Det tredje argumentet till PyMongos update() är upsert och måste klaras av en boolesk, inte en ordbok. Ändra din kod till:

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

Eller skicka upsert=True som ett sökordsargument:

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

Ditt misstag berodde troligen på att du läste om update() i MongoDB-dokumenten. JavaScript-versionen av update tar ett objekt som sitt tredje argument som innehåller valfria parametrar som upsert och multi . Men eftersom Python tillåter att nyckelordsargument skickas till en funktion (till skillnad från JavaScript som bara har positionsargument), är detta onödigt och PyMongo tar dessa alternativ som valfria funktionsparametrar istället.



  1. Trunkera en samling

  2. Har mongoDB problem med återanslutningen eller gör jag det fel?

  3. Migrera MongoDB till DynamoDB, del 2

  4. Hur kan vi skapa ett autogenererat fält för mongodb med fjäderstövel