En aquesta secció, aprendrem els conceptes fonamentals de MongoDB, una base de dades NoSQL orientada a documents. MongoDB emmagatzema dades en documents semblants a JSON, que són flexibles i fàcils de treballar. A continuació, desglossarem els conceptes clau que necessites conèixer per començar a treballar amb MongoDB.
- Documents i Col·leccions
Documents
- Definició: Un document en MongoDB és una estructura de dades composta per parelles clau-valor. Els documents són semblants a objectes JSON.
- Exemple:
{ "nom": "Joan", "edat": 30, "ciutat": "Barcelona" }
- Característiques:
- Flexible: Els documents poden tenir diferents estructures.
- Anidats: Els documents poden contenir altres documents.
Col·leccions
- Definició: Una col·lecció és un conjunt de documents. És l'equivalent a una taula en bases de dades SQL.
- Exemple: Una col·lecció
usuaris
podria contenir documents com:{ "nom": "Joan", "edat": 30, "ciutat": "Barcelona" }
{ "nom": "Maria", "edat": 25, "ciutat": "Madrid" }
- Bases de Dades
- Definició: Una base de dades en MongoDB és un contenidor de col·leccions. Cada base de dades té el seu conjunt de fitxers al sistema d'arxius.
- Exemple: Una base de dades
empresa
podria contenir col·leccions comempleats
,departaments
, etc.
- Tipus de Dades
MongoDB suporta diversos tipus de dades, incloent:
- String: Cadena de text.
- Number: Nombres enters i decimals.
- Boolean:
true
ofalse
. - Array: Llistes de valors.
- Object: Documents anidats.
- Date: Dates i hores.
- ObjectId: Identificador únic per a documents.
Exemple de Document amb Diversos Tipus de Dades
{ "nom": "Joan", "edat": 30, "actiu": true, "hobbies": ["lectura", "esport"], "adreça": { "carrer": "Carrer Major", "ciutat": "Barcelona" }, "data_registre": ISODate("2023-10-01T00:00:00Z") }
- Operacions Bàsiques
Inserir Documents
- Comanda:
insertOne
oinsertMany
- Exemple:
db.usuaris.insertOne({ "nom": "Joan", "edat": 30, "ciutat": "Barcelona" });
Llegir Documents
- Comanda:
find
- Exemple:
db.usuaris.find({ "ciutat": "Barcelona" });
Actualitzar Documents
- Comanda:
updateOne
oupdateMany
- Exemple:
db.usuaris.updateOne( { "nom": "Joan" }, { $set: { "edat": 31 } } );
Eliminar Documents
- Comanda:
deleteOne
odeleteMany
- Exemple:
db.usuaris.deleteOne({ "nom": "Joan" });
- Identificadors Únics (ObjectId)
- Definició: Cada document en MongoDB té un camp
_id
que actua com a identificador únic. Si no es proporciona, MongoDB en genera un automàticament. - Exemple:
{ "_id": ObjectId("507f1f77bcf86cd799439011"), "nom": "Joan", "edat": 30, "ciutat": "Barcelona" }
Exercicis Pràctics
Exercici 1: Crear i Inserir Documents
- Crea una col·lecció anomenada
llibres
. - Insereix els següents documents a la col·lecció
llibres
:{ "títol": "El Quixot", "autor": "Miguel de Cervantes", "any": 1605 }
{ "títol": "1984", "autor": "George Orwell", "any": 1949 }
Solució
db.llibres.insertMany([ { "títol": "El Quixot", "autor": "Miguel de Cervantes", "any": 1605 }, { "títol": "1984", "autor": "George Orwell", "any": 1949 } ]);
Exercici 2: Llegir Documents
- Llegeix tots els documents de la col·lecció
llibres
.
Solució
Exercici 3: Actualitzar Documents
- Actualitza l'any de publicació del llibre "1984" a 1950.
Solució
Exercici 4: Eliminar Documents
- Elimina el llibre "El Quixot" de la col·lecció
llibres
.
Solució
Conclusió
En aquesta secció, hem après els conceptes bàsics de MongoDB, incloent documents, col·leccions, tipus de dades i operacions CRUD. Aquests fonaments són essencials per treballar amb MongoDB i construir aplicacions eficients. En el següent mòdul, explorarem les operacions CRUD amb més detall.
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