En aquest tema, aprendrem com crear documents a MongoDB. Els documents són la unitat bàsica de dades a MongoDB, i es representen en format BSON (Binary JSON). A continuació, veurem com inserir documents en una col·lecció, així com alguns conceptes clau relacionats amb aquesta operació.

Conceptes Clau

  • Document: Un registre en una col·lecció, similar a una fila en una taula SQL.
  • Col·lecció: Un conjunt de documents, similar a una taula en una base de dades SQL.
  • BSON: Format binari utilitzat per representar documents a MongoDB.

Inserint Documents

Inserir un Document Únic

Per inserir un document únic en una col·lecció, utilitzem el mètode insertOne(). A continuació, es mostra un exemple pràctic:

// Connexió a la base de dades
const { MongoClient } = require('mongodb');
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

async function run() {
    try {
        await client.connect();
        const database = client.db('mydatabase');
        const collection = database.collection('mycollection');

        // Document a inserir
        const document = {
            name: "John Doe",
            age: 30,
            address: {
                street: "123 Main St",
                city: "Anytown",
                state: "CA"
            }
        };

        // Inserir el document
        const result = await collection.insertOne(document);
        console.log(`Document inserit amb l'ID: ${result.insertedId}`);
    } finally {
        await client.close();
    }
}

run().catch(console.dir);

Inserir Múltiples Documents

Per inserir múltiples documents alhora, utilitzem el mètode insertMany(). Aquí teniu un exemple:

// Connexió a la base de dades
const { MongoClient } = require('mongodb');
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

async function run() {
    try {
        await client.connect();
        const database = client.db('mydatabase');
        const collection = database.collection('mycollection');

        // Documents a inserir
        const documents = [
            { name: "Alice", age: 25 },
            { name: "Bob", age: 35 },
            { name: "Charlie", age: 28 }
        ];

        // Inserir els documents
        const result = await collection.insertMany(documents);
        console.log(`${result.insertedCount} documents inserits`);
    } finally {
        await client.close();
    }
}

run().catch(console.dir);

Exercicis Pràctics

Exercici 1: Inserir un Document Únic

  1. Crea una base de dades anomenada school.
  2. Crea una col·lecció anomenada students.
  3. Insereix un document amb la següent informació:
    • name: "Maria"
    • age: 22
    • major: "Computer Science"

Solució

const { MongoClient } = require('mongodb');
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

async function run() {
    try {
        await client.connect();
        const database = client.db('school');
        const collection = database.collection('students');

        const document = {
            name: "Maria",
            age: 22,
            major: "Computer Science"
        };

        const result = await collection.insertOne(document);
        console.log(`Document inserit amb l'ID: ${result.insertedId}`);
    } finally {
        await client.close();
    }
}

run().catch(console.dir);

Exercici 2: Inserir Múltiples Documents

  1. Crea una base de dades anomenada company.
  2. Crea una col·lecció anomenada employees.
  3. Insereix els següents documents:
    • { name: "John", position: "Manager", salary: 60000 }
    • { name: "Jane", position: "Developer", salary: 50000 }
    • { name: "Mike", position: "Designer", salary: 45000 }

Solució

const { MongoClient } = require('mongodb');
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

async function run() {
    try {
        await client.connect();
        const database = client.db('company');
        const collection = database.collection('employees');

        const documents = [
            { name: "John", position: "Manager", salary: 60000 },
            { name: "Jane", position: "Developer", salary: 50000 },
            { name: "Mike", position: "Designer", salary: 45000 }
        ];

        const result = await collection.insertMany(documents);
        console.log(`${result.insertedCount} documents inserits`);
    } finally {
        await client.close();
    }
}

run().catch(console.dir);

Errors Comuns i Consells

  • Error de Connexió: Assegura't que MongoDB està en execució i que la URI de connexió és correcta.
  • Duplicació de Clau: Si intentes inserir un document amb un _id que ja existeix, obtindràs un error de duplicació de clau. Deixa que MongoDB generi automàticament l'_id per evitar aquest problema.
  • Validació de Dades: Assegura't que els documents compleixen amb l'esquema esperat, si n'hi ha.

Conclusió

En aquesta secció, hem après com inserir documents en una col·lecció a MongoDB utilitzant els mètodes insertOne() i insertMany(). Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar a la següent secció, on aprendrem com llegir documents de MongoDB.

© Copyright 2024. Tots els drets reservats