#python #mongodb #pymongo
#python #mongodb #pymongo
Вопрос:
Здравствуйте, я хотел бы увеличить поле current_week
всех объектов в коллекции tournaments
, но я получаю сообщение об ошибке. У меня есть код:
class DataBase:
def __init__(self):
self.myclient = pymongo.MongoClient("mongodb://localhost:27017/")
self.mydb = self.myclient["MMA_TOURNAMENT"]
self.tournaments = self.mydb["tournaments"]
def insert_new_tournament(self, tournament):
print(tournament.__dict__)
self.tournaments.insert_one(tournament.__dict__)
def increment_day(self):
self.tournaments.update({'$inc': {'current_week' : 1}})
и я получаю сообщение об ошибке:
TypeError: update() missing 1 required positional argument: 'document'
при вызове функции. Я новичок в pymongo, я действительно не знаю, какой запрос я должен туда поместить. Спасибо!
Ответ №1:
Вам нужно передать фильтр в качестве первого параметра update_many()
; для обновления каждого документа ваш фильтр прост {}
.
def increment_day(self):
self.tournaments.update_many({}, {'$inc': {'current_week' : 1}})