En aquest tema, explorarem els diferents tipus de dades que MongoDB suporta. Entendre els tipus de dades és crucial per dissenyar esquemes eficients i per assegurar que les operacions CRUD es realitzin correctament.
Tipus de Dades Bàsics
MongoDB suporta una àmplia varietat de tipus de dades. A continuació, es presenten els tipus de dades més comuns:
-
String: Utilitzat per representar dades de text. Els strings en MongoDB han de ser codificats en UTF-8.
{ "nom": "Joan" }
-
Integer: Utilitzat per representar nombres enters. MongoDB suporta integers de 32 bits i 64 bits.
{ "edat": 30 }
-
Boolean: Utilitzat per representar valors de veritat (true) o falsedat (false).
{ "actiu": true }
-
Double: Utilitzat per representar nombres de punt flotant.
{ "preu": 19.99 }
-
Array: Utilitzat per representar llistes de valors. Els arrays poden contenir valors de diferents tipus.
{ "aficions": ["lectura", "esports", "música"] }
-
Object: Utilitzat per representar documents incrustats. Els objectes poden contenir altres objectes i arrays.
{ "adreça": { "carrer": "Carrer Major", "ciutat": "Barcelona" } }
-
Date: Utilitzat per representar dates. MongoDB emmagatzema les dates com a mil·lisegons des de l'època Unix.
{ "data_naixement": ISODate("1990-01-01T00:00:00Z") }
-
ObjectId: Utilitzat per representar identificadors únics de documents. Cada document en una col·lecció té un camp
_id
que és unObjectId
per defecte.{ "_id": ObjectId("507f1f77bcf86cd799439011") }
-
Null: Utilitzat per representar valors nuls o absència de valor.
{ "segon_nom": null }
-
Binary Data: Utilitzat per representar dades binàries.
{ "imatge": BinData(0, "base64encodeddata") }
-
Regular Expression: Utilitzat per representar expressions regulars.
{ "patró": /abc/i }
Exemples Pràctics
Exemple 1: Creant un Document amb Diversos Tipus de Dades
{ "nom": "Maria", "edat": 28, "actiu": true, "salari": 3500.50, "aficions": ["pintura", "viatges"], "adreça": { "carrer": "Carrer de la Pau", "ciutat": "València" }, "data_contracte": ISODate("2021-06-15T00:00:00Z"), "_id": ObjectId("60c72b2f9b1d8b3f4c8b4567"), "segon_nom": null, "imatge": BinData(0, "base64encodeddata"), "patró": /maria/i }
Exemple 2: Consultes amb Diferents Tipus de Dades
Consulta per String
Consulta per Integer
Consulta per Boolean
Consulta per Array
Consulta per ObjectId
Exercicis Pràctics
Exercici 1: Crear un Document amb Diversos Tipus de Dades
Crea un document per a un estudiant amb els següents camps:
- nom: "Pere"
- edat: 22
- actiu: true
- nota_mitjana: 8.5
- assignatures: ["matemàtiques", "física"]
- adreça: { carrer: "Carrer de l'Universitat", ciutat: "Girona" }
- data_matriculació: "2022-09-01T00:00:00Z"
- _id: "60c72b2f9b1d8b3f4c8b4568"
- segon_nom: null
- foto: BinData(0, "base64encodeddata")
- patró: /pere/i
Solució
{ "nom": "Pere", "edat": 22, "actiu": true, "nota_mitjana": 8.5, "assignatures": ["matemàtiques", "física"], "adreça": { "carrer": "Carrer de l'Universitat", "ciutat": "Girona" }, "data_matriculació": ISODate("2022-09-01T00:00:00Z"), "_id": ObjectId("60c72b2f9b1d8b3f4c8b4568"), "segon_nom": null, "foto": BinData(0, "base64encodeddata"), "patró": /pere/i }
Exercici 2: Consulta per Tipus de Dades
Realitza les següents consultes:
- Troba tots els estudiants amb el nom "Pere".
- Troba tots els estudiants amb una edat superior a 20.
- Troba tots els estudiants que estan actius.
- Troba tots els estudiants que tenen "física" com a assignatura.
Solució
// 1. Troba tots els estudiants amb el nom "Pere". db.estudiants.find({ "nom": "Pere" }) // 2. Troba tots els estudiants amb una edat superior a 20. db.estudiants.find({ "edat": { $gt: 20 } }) // 3. Troba tots els estudiants que estan actius. db.estudiants.find({ "actiu": true }) // 4. Troba tots els estudiants que tenen "física" com a assignatura. db.estudiants.find({ "assignatures": "física" })
Conclusió
En aquest tema, hem explorat els diferents tipus de dades que MongoDB suporta i hem vist exemples pràctics de com utilitzar-los. Entendre aquests tipus de dades és fonamental per dissenyar esquemes eficients i per realitzar operacions CRUD de manera efectiva. En el proper tema, ens endinsarem en la creació d'índexs per optimitzar les consultes 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