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
_idque és unObjectIdper 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
