2017-04-05 1 views
1
client = MongoClient('localhost',27017) 
db = client[DB_NAME] 

def db_connect(): 
    #connecting to a DB in mongoDB 
    try: 
     if client.get_database(DB_NAME): 
      print("Connection Successful!") 
      return True 
    except: 
     print("Please check your connection") 
     return False 

def db_close(): 
    print ("Connection Getting Closed") 
    client.close() 

이 만, 다음 True를 반환 MongoDB를 데이터베이스에 연결 한 경우, 다른 확인이 False를 반환하고해야 연결을 확인하는 메시지. 그래서 우리는 더 진행하지 않습니다.pymongo : 우리는 연결이 pymongo가 존재하는 경우 기능을 수행 할 수 있도록 내가 작업을 달성하기 위해 노력하고

어떻게하면됩니까?

편집 1 :

Successfully added user: { 
"user" : "ash", 
"roles" : [ 
    { 
     "role" : "readWrite", 
     "db" : "myDB" 
    }, 
    "clusterAdmin" 
] 

} 솔루션

허용은

나는 위의 코드를 사용하여 사용자를 추가 한 후 다음 스크립트를 사용했습니다.

DB_NAME = "myDB" 
client = MongoClient('localhost',27017) 
db = client[DB_NAME] 
def db_connect(): 
    #connecting to a DB in mongoDB 
    try: 
     if db.authenticate("ash","password"): 
      print("Connection Successful!") 
      return True 
    except: 
     print("Please check your connection") 
     return False 

def db_close(): 
    print ("Connection Getting Closed") 
    client.close() 

if __name__ == "__main__": 
    db_connect() 
    db_close() 

나는 지금 내 PC에서 데이터베이스를하고 난 우분투 16.04를 사용하고있는 DB 에 연결하기 내 DB 에 연결하려면이 코드를 사용했다.

답변

1

당신은 아마 연결 함수 내에서 어쨌든 authenticate 방법을 사용해야합니다, 그래서 당신은 다음과 같은 그것을 할 수 :

In [12]: client = MongoClient(DB_MACHINE, DB_PORT) 
In [13]: db = client.db_name 
In [16]: if db.authenticate(DB_USER, DB_PASS, source=DB_SOURCE): 
      # authenticated, do ... 
     else: 
      # not authenticated, not connected, do something else 
+0

'성공적으로 추가 된 사용자 : { \t "사용자": "재", \t "역할": [ \t \t { \t \t \t "역할": "읽기 쓰기", \t \t \t "DB": "MYDB" \t \t}, \t \t "clusterAdmin"' \t] 내가 내 사용자 을 만들려면이 사용하고 내가 만드는 중이라서 어떤 실수 내가 알아낼 수 없습니다 나는 내 데이터베이스에 연결하려면이 방법을 사용하고 있습니다 . –

+0

인증 할 때 어떤 오류가 있습니까? – elena

+0

오류를 알아낼 수 없습니다. 위의 코드에서 알 수 있듯이 몇 가지 사항을 변경했습니다. 인증을받지 못했습니다. 그것을 파악할 방법이 있습니까? –

관련 문제