Learn how to connect to a MongoDB database instance with one of the world's most famous programming languages: Python.
Cloud Databases allow you to focus on building and deploying cloud applications while OVHcloud takes care of the database infrastructure and maintenance in operational conditions.
You can find an example in the GitHub examples repository.
Requirements
- a Public Cloud project in your OVHcloud account
- access to the OVHcloud Control Panel
- a MongoDB database running on your OVHcloud Public Cloud Databases (this guide can help you to meet this requirement)
- configure your MongoDB instance to accept incoming connections
- a Python environment with a stable version and public network connectivity (Internet). This guide was made using Python 3.9.5.
Concept
A MongoDB instance can be managed in multiple ways. One of the easiest, yet powerful, is to use a Command Line Interface (CLI), as shown in our guide: Connect to MongoDB with CLI.
Another way is to interact directly using a programming language, such as Python. Python is one of the major programming languages in the world, especially in the Data ecosystem. MongoDB provides official Python drivers, allowing us to connect and manage a MongoDB instance from code.
To do so, we will need to set up our Python environment with MongoDB drivers, then configure our Cloud Databases for MongoDB instances to accept incoming connections, and finally code in Python to perform a few example actions.
Instructions
Set up your Python environment
To interact with your MongoDB instance using Python, your development environment needs to be configured with:
- A compatible version of Python.
- MongoDB official driver, called PyMongo, or Motor, when working asynchronously with MongoDB.
This guide will focus on the use of PyMongo, which covers most of the use cases.
Please follow the official MongoDB documentation for Python drivers to get the latest information.
At the end of the documentation page for PyMongo, you will find a compatibility matrix between Python versions and PyMongo drivers. Follow this accordingly.
Once your Python environment is set up and you begin executing a python --version in your command line interface (CLI), you should see information about the version as shown below:
In the same console, by typing pip list | grep pymongo check if pymongo is correctly installed:
Configure your MongoDB instance to accept incoming connections
In order to be able to connect to your MongoDB instance, you will need to configure your instance to accept incoming connections from the IP address of your Python environment. If you don't know how to retrieve your IP, please visit a website such as myip.ovh from the station hosting the Python environment.
Once you know the IP address, follow the steps from this guide: Configure your MongoDB instance to accept incoming connections.
We will now follow the official MongoDB documentation to perform our first connection with Python.
Connect with Python
In your Python environment, let's try a connection. To be sure that we are indeed connected, we will insert two objects. Create a file called basic_insert.py. Insert the code below with your own credentials.
As shown in the code, we use the PyMongo official driver. Use the official PyMongo documentation for an exhaustive command list.
After executing your Python code, the result shown in the CLI should be like this:
If not, your CLI should give you more details about the issue, for example:
- Authentication failed: could be an error with your user login or password;
- nodename nor servname provided, or not known: could be a wrongly typed hostname;
- Connection reset by peer: usually due to connection without secure TLS mode. use tls=true parameter.
Once connected, you can perform multiple operations, for example, a few inserts and a find() inside a collection:
In this example, we insert two objects inside a collection called demoCollection, then we perform a find() operations in this collection, looking for all the objects.
The result here is for the print(record):
This code correctly found the two previously inserted objects. It means that here we were able to connect to the MongoDB instance, insert data, and look for this data. Congratulations! Everything is working properly.
Go further
For more information and tutorials, please see our other MongoDB and Cloud Databases support guides or explore the guides for other OVHcloud products and services.
If you need training or technical assistance to implement our solutions, contact your sales representative or click on this link to get a quote and ask our Professional Services experts for a custom analysis of your project.