MongoDB 연결 처리기를 구현하려고하는데 내 MongoClient()
호출이 있더라도 Database 호출이 None
을 반환하는 문제가 발생합니다. 성공한.MongoClient()는 성공적이지만 데이터베이스 (MongoClient(), dbName)는 NoneType을 반환합니다.
#mongoconn.py
from pymongo import MongoClient
from pymongo.database import Database
class MongoConnection():
mongoconn = None
def __init__(self, db=None, collection=None, endpoint=None):
self.mongodb = db
self.mongocollection = collection
self.mongoendpoint = endpoint
mongoconn = self.__mongo_connect()
def __mongo_connect(self):
if self.mongoendpoint is not None:
mc = MongoClient(host=self.mongoendpoint, port=27017, document_class=dict, tz_aware=False, connect=True)
print mc #successful object
return Database(mc)
else:
mc = MongoClient(host='localhost', port=27017, document_class=dict, tz_aware=False, connect=True)
print mc #successful object
return Database(mc, self.mongodb)
m1 = MongoConnection("torbot")
print m1.mongoconn # None
나는이 컬렉션 torbot
이 존재하는 것을 볼 수있다, 그래서 나는 그 문제의 믿지 않는다 :
MongoDB shell version v3.4.0
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.0
use torbot
switched to db torbot
db.requests.find();
{ "_id" : ObjectId("584f7e17bc1d1b7f37d54756"), "requestor" : "ctote", "request" : "Scott Pilgrim Vs The World" }
하지만 볼 수있는 디버그 옵션을 찾을 수없는 이유 Database(mc, self.mongodb)
에 대한 호출 실패합니다.
불구하고 일을해야 뭔가가 있다면 나도 몰라? '당신이하고있는 일이 당신이해야만하는 일인지 알지 못한다. ' – MrDuk
@MrDuk 일반적으로 애플리케이션에서'Database' 인스턴스를 조작하고 싶지는 않습니다. 필요한 모든 것이 * 연결 핸들러 * 인 경우 함수를 사용하는 것이 더 효율적입니다. – styvane