Visualizing Data from MongoDB Collection using Python

Visualizing Data from MongoDB Collection using Python

Data visualization is a crucial aspect of data analysis, allowing us to gain insights and make informed decisions. MongoDB, a popular NoSQL database, offers flexibility in storing and retrieving data, making it a preferred choice for many applications. In this tutorial, we will explore how to visualize data retrieved from a MongoDB collection using Python. You can visit the detailed tutorial on MongoDB and Data Science here.

Code Overview

Below is the Python code to connect to a MongoDB Atlas cluster, retrieve data from a specified collection, and visualize it using matplotlib;

# Import Required Libraries
import pymongo
import matplotlib.pyplot as plt

# Connect to MongoDB Atlas
client = pymongo.MongoClient("mongodb+srv://user:password@cluster0.ergtejf.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0")

# Select the Database and Collection
db = client.database
collection = db.collection

# Define a Function to Plot Data
def plot_data():
    try:
        # Retrieve data from MongoDB Atlas
        cursor = collection.find()

        # Initialize lists to store ids
        ages = []

        # Extract ids from documents
        for document in cursor:
            ages.append(document['age'])

        # Plotting
        plt.figure(figsize=(10, 6))
        plt.plot(ages)
        plt.title('ID Data from MongoDB Collection')
        plt.xlabel('Index')
        plt.ylabel('ID')
        plt.grid(True)
        plt.show()

    except Exception as e:
        print("An error occurred:", e)

# Call the Function to Plot Data
plot_data()

Explanation of Code

Import Required Libraries

# Import Required Libraries
import pymongo  # Importing pymongo library for MongoDB interaction
import matplotlib.pyplot as plt  # Importing matplotlib.pyplot for plotting

This line imports necessary libraries for our program, including pymongo for MongoDB interaction and matplotlib.pyplot for plotting.

Connect to MongoDB Atlas

# Connect to MongoDB Atlas
client = pymongo.MongoClient("mongodb+srv://user:password@cluster0.ergtejf.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0")  # Establishing connection to MongoDB Atlas

This section establishes a connection to MongoDB Atlas by providing the connection string generated from the MongoDB dashboard. Use your database connection string with correct username and password.

Select the Database and Collection

# Select the Database and Collection
db = client.database# Selecting the "afzal" database
collection = db.collection  # Selecting the "afzal" collection within the database

Here, we specify the database and collection within MongoDB that we want to retrieve data from. In this case, it’s the “database” database and “collection” collection.

Define a Function to Plot Data

# Define a Function to Plot Data
def plot_data():
    try:
        # Retrieve data from MongoDB Atlas
        cursor = collection.find()  # Retrieving data from the specified collection

        # Initialize lists to store ids
        ages = []  # Initializing an empty list to store ids from documents

        # Extract ids from documents
        for document in cursor:
            ages.append(document['age'])  # Appending each 'id' to the ids list

        # Plotting
        plt.figure(figsize=(10, 6))  # Setting figure size
        plt.plot(ages)  # Plotting the ids data
        plt.title('ID Data from MongoDB Collection')  # Setting title for the plot
        plt.xlabel('Index')  # Setting label for x-axis
        plt.ylabel('ID')  # Setting label for y-axis
        plt.grid(True)  # Enabling grid lines
        plt.show()  # Displaying the plot

    except Exception as e:
        print("An error occurred:", e)  # Handling exceptions if any error occurs during the process

This section defines a function named plot_data() to encapsulate the process of retrieving data from MongoDB and plotting it.

Retrieve Data from MongoDB Atlas:

# Retrieve Data from MongoDB Atlas
cursor = collection.find()  # Retrieving data from the specified collection

We use the find() method to retrieve data from the specified MongoDB collection. The results are stored in a cursor.

Initialize Lists and Extract IDs:

# Initialize Lists and Extract IDs
ids = []  # Initializing an empty list to store ids from documents
for document in cursor:
    ids.append(document['id'])  # Appending each 'id' to the ids list

We initialize an empty list named ids to store the ‘id’ field from each document retrieved from MongoDB. Then, we iterate through the cursor and append each ‘id’ to the ids list.

Plotting:

# Plotting
plt.figure(figsize=(10, 6))  # Setting figure size
plt.plot(ids)  # Plotting the ids data
plt.title('ID Data from MongoDB Collection')  # Setting title for the plot
plt.xlabel('Index')  # Setting label for x-axis
plt.ylabel('ID')  # Setting label for y-axis
plt.grid(True)  # Enabling grid lines
plt.show()  # Displaying the plot

Using matplotlib, we plot the data stored in the ids list. We set labels for the axes, title for the plot, and enable grid lines for better visualization.

Exception Handling:

except Exception as e:
    print("An error occurred:", e)  # Handling exceptions if any error occurs during the process

We include exception handling to catch any errors that might occur during the process of data retrieval or plotting.

Call the Function to Plot Data:

# Call the Function to Plot Data
plot_data()  # Calling the function to execute the code and visualize the data

Finally, we call the plot_data() function to execute the code and visualize the data from the MongoDB collection.

40 thoughts on “Visualizing Data from MongoDB Collection using Python

  1. One thing I’d prefer to discuss is that weightloss system fast can be achieved by the appropriate diet and exercise. People’s size not only affects the look, but also the actual quality of life. Self-esteem, depressive disorders, health risks, as well as physical capabilities are affected in putting on weight. It is possible to do everything right but still gain. In such a circumstance, a medical problem may be the root cause. While too much food but not enough work out are usually accountable, common medical ailments and key prescriptions can easily greatly amplify size. Many thanks for your post right here.

  2. I was wondering if you ever considered changing the page layout of your website? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having one or two pictures. Maybe you could space it out better?

  3. Spot on with this write-up, I really think this website wants way more consideration. I抣l in all probability be once more to learn much more, thanks for that info.

  4. I have observed that over the course of building a relationship with real estate homeowners, you’ll be able to come to understand that, in every real estate financial transaction, a commission rate is paid. Ultimately, FSBO sellers really don’t “save” the payment. Rather, they fight to win the commission by simply doing a great agent’s task. In the process, they devote their money in addition to time to perform, as best they could, the duties of an broker. Those jobs include displaying the home by way of marketing, representing the home to all buyers, constructing a sense of buyer desperation in order to prompt an offer, arranging home inspections, dealing with qualification check ups with the financial institution, supervising maintenance, and assisting the closing.

  5. Today, I went to the beachfront with my kids. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is entirely off topic but I had to tell someone!

  6. Hmm is anyone else having problems with the pictures on this blog loading? I’m trying to find out if its a problem on my end or if it’s the blog. Any responses would be greatly appreciated.

  7. This web page is really a stroll-by means of for all the data you wanted about this and didn抰 know who to ask. Glimpse right here, and also you抣l positively uncover it.

  8. The menu is quite extensive, so I will definitely be back here again. I’m curious to hear about cam models the other options offered. So as far as I’m concerned, the introduction was a success.

  9. Interesting blog post. The things i would like to contribute is that personal computer memory ought to be purchased in case your computer can no longer cope with that which you do along with it. One can put in two RAM boards with 1GB each, for example, but not one of 1GB and one with 2GB. One should look for the car maker’s documentation for the PC to be certain what type of storage is required.

  10. One important thing is that when you find yourself searching for a education loan you may find that you’ll need a co-signer. There are many conditions where this is correct because you should find that you do not possess a past credit history so the loan provider will require you have someone cosign the loan for you. Great post.

  11. Attractive portion of content I just stumbled upon your web site and in accession capital to claim that I acquire in fact loved account your weblog postsAny way I’ll be subscribing in your feeds or even I achievement you access consistently fast

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this:
Verified by MonsterInsights