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.

  1. 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"
    }
    

  1. 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 com empleats, departaments, etc.

  1. Tipus de Dades

MongoDB suporta diversos tipus de dades, incloent:

  • String: Cadena de text.
  • Number: Nombres enters i decimals.
  • Boolean: true o false.
  • 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")
}

  1. Operacions Bàsiques

Inserir Documents

  • Comanda: insertOne o insertMany
  • Exemple:
    db.usuaris.insertOne({
        "nom": "Joan",
        "edat": 30,
        "ciutat": "Barcelona"
    });
    

Llegir Documents

  • Comanda: find
  • Exemple:
    db.usuaris.find({ "ciutat": "Barcelona" });
    

Actualitzar Documents

  • Comanda: updateOne o updateMany
  • Exemple:
    db.usuaris.updateOne(
        { "nom": "Joan" },
        { $set: { "edat": 31 } }
    );
    

Eliminar Documents

  • Comanda: deleteOne o deleteMany
  • Exemple:
    db.usuaris.deleteOne({ "nom": "Joan" });
    

  1. 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

  1. Crea una col·lecció anomenada llibres.
  2. 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

  1. Llegeix tots els documents de la col·lecció llibres.

Solució

db.llibres.find();

Exercici 3: Actualitzar Documents

  1. Actualitza l'any de publicació del llibre "1984" a 1950.

Solució

db.llibres.updateOne(
    { "títol": "1984" },
    { $set: { "any": 1950 } }
);

Exercici 4: Eliminar Documents

  1. Elimina el llibre "El Quixot" de la col·lecció llibres.

Solució

db.llibres.deleteOne({ "títol": "El Quixot" });

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.

© Copyright 2024. Tots els drets reservats