Files
toads/modules/DB.py
T

132 lines
4.0 KiB
Python

from pymongo import MongoClient
class UseDB:
"""
Класс для работы с базой данных
"""
def __init__(self, collection_name):
self.series_collection = None
self.client = MongoClient('194.61.1.147', 52530)
self.db = self.client['toads']
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
}
})