Home Technology peripherals It Industry Getting Started with Python and MongoDB

Getting Started with Python and MongoDB

Feb 16, 2025 pm 01:15 PM

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:

python -m pip install pymongo
Copy after login
Copy after login

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:

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)
Copy after login
Copy after login

Replace <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:

{
  "name": "Example Corp",
  "rating": 4,
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}
Copy after login
Copy after login

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

Basic CRUD Operations

1. Connecting:

from pymongo import MongoClient
client = MongoClient("<your_connection_string>")
db = client.business  # Creates or accesses the 'business' database
Copy after login

2. Generating Sample Data (createsamples.py):

This script generates sample business review data:

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')
Copy after login

3. Querying Data:

fivestar = db.reviews.find_one({'rating': 5})
print(fivestar)

fivestarcount = db.reviews.find({'rating': 5}).count()
print(fivestarcount)
Copy after login

4. Aggregation:

python -m pip install pymongo
Copy after login
Copy after login

5. Updating Data:

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)
Copy after login
Copy after login

6. Deleting Data:

{
  "name": "Example Corp",
  "rating": 4,
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}
Copy after login
Copy after login

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 of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1653
14
PHP Tutorial
1251
29
C# Tutorial
1224
24
CNCF Arm64 Pilot: Impact and Insights CNCF Arm64 Pilot: Impact and Insights Apr 15, 2025 am 08:27 AM

This pilot program, a collaboration between the CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal, and Actuated, streamlines arm64 CI/CD for CNCF GitHub projects. The initiative addresses security concerns and performance lim

Serverless Image Processing Pipeline with AWS ECS and Lambda Serverless Image Processing Pipeline with AWS ECS and Lambda Apr 18, 2025 am 08:28 AM

This tutorial guides you through building a serverless image processing pipeline using AWS services. We'll create a Next.js frontend deployed on an ECS Fargate cluster, interacting with an API Gateway, Lambda functions, S3 buckets, and DynamoDB. Th

Top 21 Developer Newsletters to Subscribe To in 2025 Top 21 Developer Newsletters to Subscribe To in 2025 Apr 24, 2025 am 08:28 AM

Stay informed about the latest tech trends with these top developer newsletters! This curated list offers something for everyone, from AI enthusiasts to seasoned backend and frontend developers. Choose your favorites and save time searching for rel

See all articles