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()Estoy tratando de lograr una tarea, solo si la conexión existe por pymongo, luego devuelve True para que las funciones puedan continuar, de lo contrario, debería devolver False y un mensaje para verificar la conexión. Para que no sigamos adelante.
¿Cómo puedo conseguir esto?
EDICIÓN 1: Solución aceptada
Successfully added user: { "user" : "ash", "roles" : [ { "role" : "readWrite", "db" : "myDB" }, "clusterAdmin" ]}
Agregué un usuario usando el fragmento de código anterior y luego usé el siguiente script.
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()He usado este fragmento de código para conectarme a mi base de datos. Ahora me conecto a la base de datos. Tengo la base de datos en mi PC y estoy usando Ubuntu 16.04.
Probablemente tendrá que usar el método de authenticate de todos modos dentro de la función de conexión, por lo que podría hacerlo de la siguiente manera:
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