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.
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 anomenadatestdb
.db['testcollection']
: Selecciona la col·lecció anomenadatestcollection
dins de la base de dadestestdb
.
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
- Crea una base de dades anomenada
biblioteca
. - Crea una col·lecció anomenada
llibres
. - 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}
- Llegeix tots els llibres de la col·lecció i imprimeix-los.
- Actualitza l'any de publicació de "1984" a 1950.
- 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.
Curs de MongoDB
Mòdul 1: Introducció a MongoDB
Mòdul 2: Operacions CRUD a MongoDB
Mòdul 3: Modelatge de Dades a MongoDB
Mòdul 4: Indexació i Agregació
Mòdul 5: Funcions Avançades de MongoDB
Mòdul 6: Rendiment i Seguretat
- Optimització del Rendiment
- Còpia de Seguretat i Restauració
- Millors Pràctiques de Seguretat
- Monitorització i Alertes