forked from SashaSavin/PriceCompareBot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClassLawr_MongoDB.py
63 lines (52 loc) · 2.72 KB
/
ClassLawr_MongoDB.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import pymongo
import ssl
# Класс для работы с БД "MongoDB"
class MongoDB:
# Инициализаци/открытие БД
def __init__(self, connection_string, flag_ssl):
if flag_ssl:
self.CLIENT = pymongo.MongoClient(connection_string, ssl=True, ssl_cert_reqs=ssl.CERT_NONE)
else:
self.CLIENT = pymongo.MongoClient(connection_string)
print("-> Подключение к БД ({})".format(self.CLIENT))
# Возвращает True если коллекция существует
def check_collection(self, dbs, name_collection):
for collection in self.show_database(dbs):
if collection == name_collection:
return True
return False
# Удаление коллекции
def delete_collection(self, dbs, collection):
self.CLIENT[dbs][collection].drop()
print("-> [{}.{}] Коллекция удалена".format(dbs, collection))
# Очистка всех документов в коллекции
def clear_collection(self, dbs, collection):
self.CLIENT[dbs][collection].remove({})
print("-> [{}.{}] Коллекция очищена".format(dbs, collection))
# Выводит СПИСОК, каждый элемент это СЛОВАРЬ (документ из коллекции), в СЛОВАРЕ элементы (ячейки документа)
def show_collection(self, dbs, collection):
result = []
coll = self.CLIENT[dbs][collection]
for documet in coll.find():
result.append(documet)
return result
# Выводит СПИСОК, каждый элемент это ИМЯ коллекции
def show_database(self, dbs):
return self.CLIENT[dbs].collection_names()
# Красивая печать РЕЗУЛЬАТОВ полученных при помощи функций "show_.."
@staticmethod
def nice_print(result):
print("-> nice_print:")
for documet in result:
print(' ', documet)
# Добавление строки "value" в конец коллекции "collection" в БД "dbs"
def add_line_to_end(self, dbs, collection, value):
coll = self.CLIENT[dbs][collection]
coll.save(value)
print("-> [{}.{}] Добавлен документ в конец".format(dbs, collection))
# Удаление документа в конеце коллекции
def del_line_to_end(self, dbs, collection):
coll = self.CLIENT[dbs][collection]
temp = self.show_collection(dbs, collection)[-1]
coll.remove(temp, True)
print("-> [{}.{}] Удален документ в конце".format(dbs, collection))