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
- Crea una base de dades anomenada
school
. - Crea una col·lecció anomenada
students
. - Insereix un document amb la següent informació:
name
: "Maria"age
: 22major
: "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
- Crea una base de dades anomenada
company
. - Crea una col·lecció anomenada
employees
. - 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.
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