- System environment
- Install pymongo
- Imports
- Parameters
- Construct the URI
- Connect to the MongoDB
- Select the database
- Select the collection
- Insert Documents
- Queries
- Find documents
- Print cursor data
- Update Documents
- Delete Documents
- Docker container
- References
- Deployed MongoDB 4.4.3
- Python 3.9.1
pip install pymongo==3.11.3import os
from pprint import pprintfrom pymongo import MongoClientMONGODB_USERNAME = os.environ.get("MONGODB_USERNAME")
MONGODB_PASSWORD = os.environ.get("MONGODB_PASSWORD")
MONGODB_HOST = os.environ.get("MONGODB_HOST")
MONGODB_DATABASE = os.environ.get("MONGODB_DATABASE")
MONGODB_COLLECTION = os.environ.get("MONGODB_COLLECTION")uri = f"mongodb://{MONGODB_USERNAME}:{MONGODB_PASSWORD}@{MONGODB_HOST}"connection = MongoClient(uri)db = connection[MONGODB_DATABASE]collection = db[MONGODB_COLLECTION]doc = {
"item": "canvas",
"qty": 100,
"tags": ["cotton"],
"size": {
"h": 28,
"w": 35.5,
"uom": "cm"
}
}collection.insert_one(doc)docs = [
{
"item": "journal",
"qty": 25,
"size": {"h": 14, "w": 21, "uom": "cm"},
"status": "A"
},
{
"item": "notebook",
"qty": 50,
"size": {"h": 8.5, "w": 11, "uom": "in"},
"status": "A"
},
{
"item": "paper",
"qty": 100,
"size": {"h": 8.5, "w": 11, "uom": "in"},
"status": "D"
},
{
"item": "planner",
"qty": 75,
"size": {"h": 22.85, "w": 30, "uom": "cm"},
"status": "D"
},
{
"item": "postcard",
"qty": 45,
"size": {"h": 10, "w": 15.25, "uom": "cm"},
"status": "A"
}
]collection.insert_many(docs)query = {}query = {"status": "D"}query = {"status": {"$in": ["A", "D"]}}query = {"status": "A", "qty": {"$lt": 30}}query = {"$or": [{"status": "A"}, {"qty": {"$lt": 30}}]}query = {
"status": "A",
"$or": [{"qty": {"$lt": 30}}, {"item": {"$regex": "^p"}}]
}cursor = collection.find(query)for doc in cursor:
pprint(doc)update_operator = {
"$set": {"size.uom": "cm", "status": "P"},
"$currentDate": {"lastModified": True}
}collection.update_one(query, update_operator)collection.update_many(query, update_operator)collection.replace_one(query, doc)collection.delete_one(query)collection.delete_many(query)FROM python:3.9.1-buster
RUN pip install pymongo==3.11.3
docker build -t python-pymongo-usage .MONGODB_USERNAME=user
MONGODB_PASSWORD=topsecret
MONGODB_HOST=mongodb
MONGODB_DATABASE=newdb
MONGODB_COLLECTION=testcollection
docker run --rm --link mongodb --env-file .env -it python-pymongo-usage python