Python, MongoDB, and Compose
Installing the Driver
The recommended python driver for MongoDB is PyMongo.
The current PyMongo version can be installed through pip:
pip install pymongo
import os import pymongo import ssl MONGODB_URL = os.environ.get('MONGODB_URL') MONGODB_CERT_PATH = os.environ.get('MONGODB_CERT_PATH') if MONGODB_CERT_PATH: client = pymongo.MongoClient( MONGODB_URL, ssl=True, ssl_ca_certs=MONGODB_CERT_PATH) else: client = pymongo.MongoClient( MONGODB_URL) db = client.get_default_database() print (db.collection_names())
TLS/SSL and Authentication
PyMongo can parse the connection string that Compose provides on the Overview page of your deployment. For use in these examples, the connection string is set in an environment variable
MONGODB_URL. For example:
export MONGODB_URL = "mongodb://admin:[password]@portal-ssl1482-25.astute-mongodb-26.compose-34.composedb.com:25264,portal-ssl1485-26.astute-mongodb-26.compose-34.composedb.com:25264/compose?authSource=admin&ssl=true"
The driver will automatically pull the username and password from the connection string.
If your deployment has self-signed certificates, you will need to save a local copy of the certificate. Then you will provide the driver with the path to that certificate. For these examples the path is set in an environment variable
export MONGODB_CERT_PATH= "/Path/to_the/cert/mongo_cert.pem"
In addition to connection information, the driver will also look for a database to connect to. Connect to the default database on your deployment using
db = client.get_default_database().
You can specify a database to connect to using
db = client.my_database.
Still Need Help?
If this article didn't solve things, summon a human and get some help!
Updated over 3 years ago