2. MongoDB
MongoDB és una base de dades orientada a documents, basada en l'emmagatzematge de les seves estructures de dades en documents de tipus JSON amb un esquema dinàmic. Tot i que va començar a ser desenvolupada per l'empresa 10gen, avui en dia és un projecte de codi obert, amb una gran comunitat d'usuaris.
Un servidor MongoDB pot contenir diverses bases de dades, i cadascuna d'elles està formada per un conjunt de col·leccions, que podríem comparar amb les taules d'una base de dades relacional. Cada col·lecció emmagatzema un conjunt de documents JSON, formats per atributs clau-valor, que serien els registres d'una base de dades relacional.
A grans trets, podríem establir les següents comparacions:
| Model relacional | MongoDB |
|---|---|
| Base de dades relacional | Base de dades orientada a documents |
| Taula | Col·lecció |
| Registre/Fila | Documents JSON |
| Columnes i valors de la taula | Parells Clau:Valor |
2.1. Configuració i primera execució
MongoDB cobreix una àmplia gamma de possibilitats, des de servidors de bases de dades locals fins a bases de dades al núvol. Al seu lloc web https://www.mongodb.com, podem descobrir els diferents productes i serveis que s'ofereixen, entre els quals trobem:
- Servidor MongoDB, amb les seves dues versions, la Community, versió gratuïta i comunitària, i l'Enterprise, la seva versió comercial orientada al món empresarial i amb característiques addicionals que milloren el rendiment i el suport. A més del servidor en si, també s'ofereix el servidor preparat per a ús en contenidors a través d'operadors de Kubernetes. El servidor està disponible en diverses plataformes: Linux, Solaris, MacOS X i Windows.
- Podem utilitzar el mongo shell o compass o Robo3T gràfic com a client, instal·lat en el nostre sistema.
- MongoDB Atlas, la plataforma MongoDB al núvol (DBaaS o DataBase as a Service), que permet el seu desplegament en serveis com AWS, Azure o Google Cloud.
- Realm, un servei de dades dissenyat per a aplicacions mòbils i web, i que inclou, a més de DB al núvol, diversos serveis de backend totalment gestionats.
Utilitzarem, com a curs actual, tots els servidors a través de contenidors docker. Podríem descarregar la imatge docker via:
| Bash | |
|---|---|
i llavors crear el contenidor amb:
| Bash | |
|---|---|
Llavors ja podem connectar des de l'eina escollida