У меня есть класс базы данных, в котором определены несколько методов, таких как find_one, find, update и т. Д. Вот пример:
@staticmethod
def find(collection, query):
return Database.DATABASE[collection].find(query)
Чтобы вернуть все элементы и вернуть их как элементы классакоторый я могу позже выполнить, используя следующий код внутри другого класса:
@classmethod
def all(cls):
return [cls(**elem) for elem in Database.find(ItemConstants.COLLECTION, {})]
Я пытаюсь вернуть минимальное значение на основе имени столбца, через который я прохожу:
@classmethod
def get_by_parameters(cls, name, category, url, size):
return [cls(**elem) for elem in Database.find(ItemConstants.COLLECTION,
{"name": name, "category": category, "url": url,
"size": size}).sort('time', pymongo.DESCENDING).limit(1)][0]
И эта работа полностью работает и возвращает один единственный элемент класса.
Но я борюсь с тем, что я пытаюсь создать метод внутри класса Database, который называется find_min, здеськод для того: Класс базы данных:
@staticmethod
def find_min(collection, query, column):
Database.DATABASE[collection].find(query).sort({column: pymongo.ASCENDING}).limit(1)
И вот как я использую другой метод, чтобы вызвать его.
@classmethod
def get_by_parameters(cls, name, category, url, size):
return cls(**Database.find_min(ItemConstants.COLLECTION,
{"name": name, "category": category, "url": url,
"size": size}, 'time'))
И это не работает, яполучаю следующую ошибку:
Файл "D: \ python_projects \ price_tracker \ venv \ lib \ site-packages \ pymongo \ cursor.py", строка 676, в ключах сортировки = helpers._index_list(key_or_list, direction) Файл "D: \ python_projects \ price_tracker \ venv \ lib \ site-packages \ pymongo \ helpers.py ", строка 63, в _index_list поднять TypeError (" если направление не указано, "TypeError: если направление не указано, key_or_list должен быть экземпляром списка