используйте pymongo как класс для запроса - PullRequest
0 голосов
/ 28 апреля 2019

Я написал класс, который предполагает подключение mongoDB в качестве базы данных


class DB:
   def __init__(self,hostName ,port):
      self._conn = myDB.Connection(hostName, port)
      self.mydb = _conn['mydb']
      self.mycollection = mydb["recipe"]

   def find_name(self, name :str):
      return self.mycollection.find({"name": name})

Теперь я хочу запросить из этой базы данных

, поэтому я запустил

dd = mydb("localhost", 27017)

и яхочу использовать функцию find_name(name).Купить Я получил

dd = mydb ("localhost", 27017) TypeError: объект 'module' не может быть вызван

вопрос в том, как создать класс DB ииспользуйте его для запроса из другого .py файла.заранее спасибо

1 Ответ

0 голосов
/ 28 апреля 2019

Вы, вероятно, назвали свой файл pymongo как mydb.py и, вероятно, импортируете свой модуль PyMongo следующим образом:

import mydb

А потом так и называется:

dd = mydb('localhost', 27017)

Проблема в том, что mydb - это модуль. Это не то же самое, что класс DB, который вы определили внутри mydb. Вам необходимо создать объект DB. Вы можете сделать это:

dd = mydb.DB('localhost', 27017)

Или вот так:

from mydb import DB
...
dd = DB('localhost', 27017)
...