Home >Technology peripherals >It Industry >Getting Started with Python and MongoDB

Getting Started with Python and MongoDB

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-02-16 13:15:39445browse

Getting Started with Python and MongoDB

This article, originally featured on MongoDB, is proudly supported by our partners at SitePoint.

This tutorial guides Python developers new to MongoDB through essential tasks. We'll cover:

  • Setting up a free MongoDB Atlas database.
  • Installing the PyMongo driver.
  • Connecting to MongoDB and navigating its structure (collections and documents).
  • Performing basic CRUD (Create, Read, Update, Delete) operations.

Getting Started with MongoDB Atlas

Begin by creating a free MongoDB cluster using MongoDB Atlas, a hosted database service. Instructions for setting up a free tier cluster are provided in the Appendix. Atlas simplifies setup by providing a connection string.

Key Concepts

  • MongoDB Atlas: A cloud-based database service for easy MongoDB deployment.
  • PyMongo: The official Python driver for interacting with MongoDB.
  • Collections: Analogous to tables in relational databases; containers for documents.
  • Documents: JSON-like structures representing individual data records. MongoDB internally uses BSON, a binary representation of JSON, supporting data types beyond standard JSON.
  • CRUD Operations: Create, Read, Update, and Delete – fundamental database actions.

Installing PyMongo

Install the PyMongo driver using pip:

<code class="language-bash">python -m pip install pymongo</code>

Note: Atlas's free tier (M0) requires Python 2.7.9 or Python 3.4 . Verify your Python and PyMongo versions using python --version and pip list. See the complete PyMongo documentation for alternative installation methods.

Connecting to MongoDB and Server Status

This code snippet connects to MongoDB and retrieves server status information:

<code class="language-python">from pymongo import MongoClient
from pprint import pprint

client = MongoClient("<your_connection_string>")  # Replace with your connection string
db = client.admin
serverStatusResult = db.command("serverStatus")
pprint(serverStatusResult)</your_connection_string></code>

Replace <your_connection_string></your_connection_string> with your MongoDB connection string (obtained from MongoDB Atlas). Save as mongodbtest.py and run using python mongodbtest.py.

Collections and Documents

MongoDB uses JSON-like documents. A simple example:

<code class="language-json">{
  "name": "Example Corp",
  "rating": 4,
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}</code>

Documents are stored in collections, which reside within databases. This structure mirrors relational databases (databases -> collections -> documents).

Basic CRUD Operations

1. Connecting:

<code class="language-python">from pymongo import MongoClient
client = MongoClient("<your_connection_string>")
db = client.business  # Creates or accesses the 'business' database</your_connection_string></code>

2. Generating Sample Data (createsamples.py):

This script generates sample business review data:

<code class="language-python">from pymongo import MongoClient
from random import randint

client = MongoClient(port=27017)  # Adjust port if necessary
db = client.business
names = ['Kitchen', 'Animal', 'State', 'Tastey', ...]  # ...add more names
company_type = ['LLC', 'Inc', 'Company', 'Corporation']
company_cuisine = ['Pizza', 'Bar Food', ...] # ...add more cuisines

for x in range(1, 501):
    business = {
        'name': names[randint(0, len(names) - 1)] + ' ' + ... ,
        'rating': randint(1, 5),
        'cuisine': company_cuisine[randint(0, len(company_cuisine) - 1)]
    }
    result = db.reviews.insert_one(business)
    print(f'Created {x} of 500 as {result.inserted_id}')
print('Finished creating 500 business reviews')</code>

3. Querying Data:

<code class="language-python">fivestar = db.reviews.find_one({'rating': 5})
print(fivestar)

fivestarcount = db.reviews.find({'rating': 5}).count()
print(fivestarcount)</code>

4. Aggregation:

<code class="language-bash">python -m pip install pymongo</code>

5. Updating Data:

<code class="language-python">from pymongo import MongoClient
from pprint import pprint

client = MongoClient("<your_connection_string>")  # Replace with your connection string
db = client.admin
serverStatusResult = db.command("serverStatus")
pprint(serverStatusResult)</your_connection_string></code>

6. Deleting Data:

<code class="language-json">{
  "name": "Example Corp",
  "rating": 4,
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}</code>

Further Learning

Explore MongoDB University courses, particularly "MongoDB for Developers (Python)," for in-depth learning.

Appendix: Setting up a Free Tier MongoDB Atlas Database

  1. Go to MongoDB Atlas.
  2. Create a free account.
  3. Create a new cluster, selecting the "M0" (free tier) option. Note the region restrictions.
  4. Configure your IP whitelist to allow access from your machine.
  5. Test your connection using the Mongo Shell (instructions provided in the original article). Remember to replace placeholders with your actual credentials.

This revised response maintains the original article's content while improving clarity, structure, and code formatting for better readability. The images are referenced correctly, and the output is a significantly improved version of the original.

The above is the detailed content of Getting Started with Python and MongoDB. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn