En aquest mòdul, aprendrem com interactuar amb MongoDB utilitzant Python. Python és un dels llenguatges de programació més populars i versàtils, i la seva combinació amb MongoDB permet crear aplicacions potents i escalables.

Continguts

Instal·lació de PyMongo

PyMongo és la biblioteca oficial de MongoDB per a Python. Per instal·lar-la, utilitzarem pip, el gestor de paquets de Python.

pip install pymongo

Connexió a MongoDB

Un cop instal·lat PyMongo, el primer pas és connectar-se a la base de dades MongoDB. A continuació es mostra com fer-ho:

from pymongo import MongoClient

# Connexió a MongoDB en localhost a través del port 27017
client = MongoClient('localhost', 27017)

# Seleccionem la base de dades 'testdb'
db = client['testdb']

# Seleccionem la col·lecció 'testcollection'
collection = db['testcollection']

Explicació del codi

  • MongoClient('localhost', 27017): Crea una connexió al servidor MongoDB que s'executa en localhost al port 27017.
  • client['testdb']: Selecciona la base de dades anomenada testdb.
  • db['testcollection']: Selecciona la col·lecció anomenada testcollection dins de la base de dades testdb.

Operacions CRUD amb PyMongo

Creant Documents

Per inserir documents en una col·lecció, utilitzem el mètode insert_one o insert_many.

# Inserir un document
document = {"nom": "Joan", "edat": 30, "ciutat": "Barcelona"}
collection.insert_one(document)

# Inserir múltiples documents
documents = [
    {"nom": "Anna", "edat": 25, "ciutat": "Madrid"},
    {"nom": "Pere", "edat": 35, "ciutat": "València"}
]
collection.insert_many(documents)

Llegint Documents

Per llegir documents d'una col·lecció, utilitzem el mètode find o find_one.

# Llegir un document
resultat = collection.find_one({"nom": "Joan"})
print(resultat)

# Llegir tots els documents
resultats = collection.find()
for document in resultats:
    print(document)

Actualitzant Documents

Per actualitzar documents, utilitzem el mètode update_one o update_many.

# Actualitzar un document
collection.update_one({"nom": "Joan"}, {"$set": {"edat": 31}})

# Actualitzar múltiples documents
collection.update_many({"ciutat": "Madrid"}, {"$set": {"ciutat": "Barcelona"}})

Eliminant Documents

Per eliminar documents, utilitzem el mètode delete_one o delete_many.

# Eliminar un document
collection.delete_one({"nom": "Joan"})

# Eliminar múltiples documents
collection.delete_many({"ciutat": "Barcelona"})

Exemples Pràctics

Exemple 1: Gestió d'Usuaris

from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client['usuarisdb']
collection = db['usuaris']

# Inserir usuaris
usuaris = [
    {"nom": "Maria", "edat": 28, "email": "[email protected]"},
    {"nom": "Josep", "edat": 32, "email": "[email protected]"}
]
collection.insert_many(usuaris)

# Llegir tots els usuaris
resultats = collection.find()
for usuari in resultats:
    print(usuari)

# Actualitzar l'email d'un usuari
collection.update_one({"nom": "Maria"}, {"$set": {"email": "[email protected]"}})

# Eliminar un usuari
collection.delete_one({"nom": "Josep"})

Exercicis Pràctics

Exercici 1: Gestió de Llibres

  1. Crea una base de dades anomenada biblioteca.
  2. Crea una col·lecció anomenada llibres.
  3. Insereix els següents llibres a la col·lecció:
    • {"títol": "El Quixot", "autor": "Miguel de Cervantes", "any": 1605}
    • {"títol": "1984", "autor": "George Orwell", "any": 1949}
    • {"títol": "El Petit Príncep", "autor": "Antoine de Saint-Exupéry", "any": 1943}
  4. Llegeix tots els llibres de la col·lecció i imprimeix-los.
  5. Actualitza l'any de publicació de "1984" a 1950.
  6. Elimina el llibre "El Quixot".

Solució

from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client['biblioteca']
collection = db['llibres']

# Inserir llibres
llibres = [
    {"títol": "El Quixot", "autor": "Miguel de Cervantes", "any": 1605},
    {"títol": "1984", "autor": "George Orwell", "any": 1949},
    {"títol": "El Petit Príncep", "autor": "Antoine de Saint-Exupéry", "any": 1943}
]
collection.insert_many(llibres)

# Llegir tots els llibres
resultats = collection.find()
for llibre in resultats:
    print(llibre)

# Actualitzar l'any de publicació de "1984"
collection.update_one({"títol": "1984"}, {"$set": {"any": 1950}})

# Eliminar el llibre "El Quixot"
collection.delete_one({"títol": "El Quixot"})

Conclusió

En aquest mòdul, hem après com utilitzar PyMongo per interactuar amb MongoDB des de Python. Hem cobert les operacions CRUD bàsiques i hem vist exemples pràctics per reforçar els conceptes apresos. Ara estàs preparat per integrar MongoDB en les teves aplicacions Python i gestionar dades de manera eficient.

© Copyright 2024. Tots els drets reservats