2017-04-05 11 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() 

を接続している場合、私は機能を続行できるように、それは虚偽であり、aを返すべき他、Trueを返し、その後、接続がpymongoで存在する場合にのみ、タスクを達成しようとしていますチェックします接続を確認するメッセージ。私たちはさらに進まないように。pymongo:我々はMongoDBのデータベースに

どうすればこの問題を解決できますか?

EDIT 1:受理解決

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

}

Iは、上記のコードを使用してユーザーを追加した後、次のスクリプトを使用します。

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内のデータベースを持っていると私はUbuntuの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

私はエラーを理解することができませんでした。 上記のコードからわかるように、いくつかの変更を加えました。 それは認証されていません。それを理解する方法はありますか? –