En aquest tema, aprendrem com llegir documents de MongoDB utilitzant diverses tècniques i operacions. La lectura de documents és una de les operacions més comunes i essencials quan es treballa amb bases de dades. Ens centrarem en les operacions bàsiques de lectura, així com en algunes tècniques avançades per filtrar i projectar dades.
Continguts
Operació find
L'operació find és la més utilitzada per llegir documents d'una col·lecció. Aquesta operació retorna tots els documents que compleixen els criteris especificats.
Exemple Bàsic
// 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');
// Operació find sense filtres
const cursor = collection.find({});
const results = await cursor.toArray();
console.log(results);
} finally {
await client.close();
}
}
run().catch(console.dir);Explicació
- Connexió a la base de dades: Ens connectem a la base de dades
mydatabasei a la col·lecciómycollection. - Operació
find: La funciófind({})retorna tots els documents de la col·lecció. - Cursor:
findretorna un cursor, que és un punter als resultats de la consulta. toArray: Convertim el cursor a una matriu per poder treballar amb els resultats.
Filtratge de Documents
Podem especificar criteris de filtratge per retornar només els documents que compleixin certes condicions.
Exemple de Filtratge
// Filtratge per camp específic
const cursor = collection.find({ age: { $gt: 25 } });
const results = await cursor.toArray();
console.log(results);Explicació
- Filtratge:
{ age: { $gt: 25 } }retorna tots els documents on el campageés major que 25. - Operadors de Comparació: MongoDB proporciona diversos operadors de comparació com
$gt(major que),$lt(menor que),$gte(major o igual que),$lte(menor o igual que),$eq(igual a), etc.
Projecció de Camps
La projecció ens permet especificar quins camps volem incloure o excloure dels documents retornats.
Exemple de Projecció
// Incloure només els camps 'name' i 'age'
const cursor = collection.find({}, { projection: { name: 1, age: 1 } });
const results = await cursor.toArray();
console.log(results);Explicació
- Projecció:
{ projection: { name: 1, age: 1 } }inclou només els campsnameiageen els documents retornats. - Incloure/Excloure Camps: Utilitzem
1per incloure un camp i0per excloure'l.
Ordenació de Resultats
Podem ordenar els resultats de la consulta utilitzant l'operació sort.
Exemple d'Ordenació
// Ordenar per camp 'age' en ordre ascendent
const cursor = collection.find().sort({ age: 1 });
const results = await cursor.toArray();
console.log(results);Explicació
- Ordenació:
{ age: 1 }ordena els resultats perageen ordre ascendent. Utilitzem-1per ordre descendent.
Limitació i Salt de Resultats
Podem limitar el nombre de documents retornats i saltar un nombre específic de documents.
Exemple de Limitació i Salt
// Limitar a 5 documents i saltar els primers 10 const cursor = collection.find().limit(5).skip(10); const results = await cursor.toArray(); console.log(results);
Explicació
- Limitació:
limit(5)retorna només 5 documents. - Salt:
skip(10)salta els primers 10 documents.
Exercicis Pràctics
Exercici 1: Filtratge i Projecció
- Filtra els documents on el camp
statusés "active". - Inclou només els camps
nameiemailen els resultats.
const cursor = collection.find({ status: "active" }, { projection: { name: 1, email: 1 } });
const results = await cursor.toArray();
console.log(results);Exercici 2: Ordenació i Limitació
- Ordena els documents per
createdAten ordre descendent. - Limita els resultats a 3 documents.
const cursor = collection.find().sort({ createdAt: -1 }).limit(3);
const results = await cursor.toArray();
console.log(results);Solucions
Solució Exercici 1
const cursor = collection.find({ status: "active" }, { projection: { name: 1, email: 1 } });
const results = await cursor.toArray();
console.log(results);Solució Exercici 2
const cursor = collection.find().sort({ createdAt: -1 }).limit(3);
const results = await cursor.toArray();
console.log(results);Conclusió
En aquesta secció, hem après com llegir documents de MongoDB utilitzant l'operació find, així com tècniques per filtrar, projectar, ordenar, limitar i saltar resultats. Aquestes operacions són fonamentals per treballar amb dades en MongoDB i ens permeten obtenir exactament la informació que necessitem de manera eficient. En el següent tema, explorarem com actualitzar documents a 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
