from pymongo import MongoClient class UseDB: """ Класс для работы с базой данных """ def __init__(self, collection_name): self.series_collection = None self.client = MongoClient('127.0.0.1', 27017) self.db = self.client['aero'] self.series_collection = self.db[collection_name] def find_document(self, elements: dict) -> list: """ Функция поиска элемента в базе данных :param elements: dict - элемент, который надо искать :return: list - сам элемент """ return [x for x in self.series_collection.find(elements)] def insert_document(self, data: dict) -> list: """ Функция добавления элемента в базу данных :param data: dict - элемент, который надо добавить :return: list - созданный элемент """ return self.series_collection.insert_one(data).inserted_id def update_document(self, query_elements: dict, new_values: dict) -> None: """ Функция обновления элемента в базе данных :param query_elements: dict - элемент, который надо обновить :param new_values: dict - элемент, этот самый элемент :return: None """ self.series_collection.update_one(query_elements, {'$set': new_values}) def del_document(self, query_elements: dict) -> None: """ Функция удаления элемента в базу данных :param query_elements: dict - элемент, который надо удалить :return: None """ self.series_collection.delete_one(query_elements) def create_new_game(self): import datetime data_now = datetime.datetime.now() new_format_data = data_now.strftime("%d.%m.%Y") self.series_collection.drop() self.series_collection.insert_one({ "day": 0, "frogs": [ { "name": "Квакуша", "hp": 100, "hunger": 0 }, { "name": "Квакша", "hp": 100, "hunger": 0 }, { "name": "Квак", "hp": 100, "hunger": 0 }, { "name": "Ква", "hp": 100, "hunger": 0 }, { "name": "Кваква", "hp": 100, "hunger": 0 }, { "name": "Джабба-хатт", "hp": 100, "hunger": 0 }, { "name": "Квендальф", "hp": 100, "hunger": 0 }, { "name": "Лягуша", "hp": 100, "hunger": 0 }, { "name": "Жаба", "hp": 100, "hunger": 0 }, { "name": "Абажаю", "hp": 100, "hunger": 0 }, { "name": "Пучеглазый", "hp": 100, "hunger": 0 }, { "name": "Вафля", "hp": 100, "hunger": 0 } ], "money": 0, "save": { "name": "start", "data": new_format_data } })