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
_idque ja existeix, obtindràs un error de duplicació de clau. Deixa que MongoDB generi automàticament l'_idper 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
