2. DDL en NoSQL
En aquest apartat veurem com instal·lar MongoDB i les operacions de definició de dades (DDL): com crear i eliminar bases de dades i col·leccions.
2.1. Instal·lació de MongoDB
2.1.1. Amb Docker
Utilitzarem Docker Compose per comoditat, i per si volem afegir després també la utilitat IGU.
Contingut de l'arxiu docker-compose.yml:
| YAML | |
|---|---|
Ens situem dins del directori que conté el docker-compose.yml i el llancem mitjançant:
| Bash | |
|---|---|
Per accedir des d'un terminal utilitzarem el client de Mongo:
| Bash | |
|---|---|
Versions actuals
En les versions recents de MongoDB, el client mongo ha estat substituït per mongosh:
| Bash | |
|---|---|
2.1.2. Ubuntu
En Ubuntu podem instal·lar la versió de la comunitat de MongoDB directament des del repositori oficial:
Per comprovar que el servei està funcionant:
| Bash | |
|---|---|
I per entrar a la consola:
| Bash | |
|---|---|
2.1.3. Windows
A Windows, l'opció més senzilla és descarregar l'instal·lador oficial (.msi) des de la pàgina de MongoDB i seguir l'assistent. L'instal·lador configura MongoDB com un servei de Windows i deixa disponible la consola mongosh des de qualsevol terminal.
2.1.4. Utilitats IGU
Compass
MongoDB Compass és la interfície gràfica oficial de MongoDB. Podem crear la nostra pròpia imatge mitjançant un Dockerfile.
Contingut de l'arxiu Dockerfile:
Ens situem al directori on està el Dockerfile i construïm la imatge:
| Bash | |
|---|---|
Llancem un contenidor amb IGU partint de la imatge anterior:
| Bash | |
|---|---|
Atenció
Falta afegir a l'ordre anterior un volum enllaçat per poder passar els arxius a importar.
Robo 3T
Robo 3T és un client gràfic alternatiu per a MongoDB. Escrivim el següent Dockerfile:
Construïm la imatge:
| Bash | |
|---|---|
Llancem:
| Bash | |
|---|---|
2.2. Primers comandaments
Primers comandaments que podem provar:
-
show dbs/show databases: mostra totes les bases de dades que tenim a Mongo.
-
use <basededades>: accedeix a una base de dades.
-
show collections: mostra les col·leccions que tenim a una BD.
-
db.stats(): ens dona els detalls i estadístiques generals de la base de dades.
-
db.help(): proporciona ajuda dels comandaments de Mongo. db: indica la base de dades actual.
2.3. Crear una base de dades
No hi ha cap mètode específic per crear una base de dades: en el moment que creem una col·lecció, automàticament es crea la base de dades.
-
Primer accedim a la base de dades nova (encara que no existisca):

-
Una vegada dins, hem de crear una col·lecció.
Atenció
Amb use encara no s'ha creat res: si no creem la col·lecció, la base de dades no s'haurà creat.
2.4. Crear una col·lecció
Tenim dues opcions per crear les col·leccions:
Opcions per crear col·leccions
db.createCollection(<nomColeccio>, [opcions]) ens permet crear una col·lecció utilitzant les distintes opcions de configuració. Aquesta opció és interessant quan el projecte està clar, definit i estan clares les limitacions que li posarem.

db.<nomColeccio>.insert(<JSON>): li diem a Mongo que faça una inserció en la col·lecció i, si Mongo detecta que no existeix, la crea. Aquesta és l'opció més habitual quan comencem i encara no tenim clares les limitacions que li donarem a la col·lecció.

2.5. Eliminar col·leccions i bases de dades
db.<nomColeccio>.drop(): elimina la col·lecció i retornatrueofalsesegons si s'ha eliminat correctament o ha ocorregut algun problema.db.dropDatabase(): elimina la base de dades en la qual estem.
Atenció
Aquestes operacions no es poden desfer. Abans d'eliminar una col·lecció o una base de dades, assegura't que ja no necessites les dades.