2. Bases de dades NoSQL

2.4. Començar a treballar amb el SGBD MongoDB

A la màquina virtual proporcionada per la UOC tenim instal·lat un SGBD MongoDB.

Per connectar-nos al servidor de MongoDB obrim un terminal, hi escrivim mongosh i ens sortirà el cursor >

Figura 73. Exemple de connexió a MongoDB per terminal.
Font: elaboració pròpia.

Ja estem connectats al servidor amb el client de la línia d’ordres i ja podrem escriure les ordres i sentències per interactuar amb el servidor de MongoDB.

Per visualitzar les bases de dades creades:

show dbs

Figura 74. Mostrar les bases de dades creades.
Font: elaboració pròpia.

Com que encara no hem creat cap base de dades, només ens mostra les bases de dades del sistema.

Per crear una nova base de dades buida fem servir l’ordre use.

Vam crear la base de dades uoc.

use uoc

L’ordre use serveix tant per crear una base de dades nova com per connectar-se a una base de dades existent. L’ordre intenta connectar-se a una base de dades existent i si no existeix la crea.

Aquesta és una característica general de MongoDB, és molt flexible i dona pocs errors. En altres sistemes de gestió de bases de dades com MySQL, en intentar connectar amb una base de dades inexistent saltaria un error. A MongoDB no salta error i es crea la nova base de dades. En realitat, no la crea, guarda espai per crear-hi col·leccions de documents. Si creem una nova base de dades amb l’ordre use i no creem col·leccions en ella, no queda emmagatzemada.

Veiem en aquesta seqüència d’ordres com consultem les bases de dades existents en el sistema amb show dbs, creem la base de dades uoc amb use uoc, i com quan tornem a consultar les bases de dades amb show dbs no apareix la base de dades uoc.

Figura 75. Utilitzar una base de dades.
Font: elaboració pròpia.

 

Perquè la nova base de dades quedi guardada al sistema cal que tingui col·leccions de documents.

Ara crearem una nova col·lecció buida a la base de dades uoc utilitzant la instrucció createCollection().

Figura 76. Crear una col·lecció de documents.
Font: elaboració pròpia.

Tornem a connectar-nos a la base de dades uoc amb use uoc i creem la col·lecció de documents buida anomenada chr1.

Si us hi fixeu, primer executem la instrucció o funció db.createCollection(chr1); però dona error perquè el paràmetre que espera la funció no està entre cometes simples: “chr1”.

En escriure el paràmetre entre cometes simples db.createCollection("chr1"); la nova col·lecció anomenada chr1 es crea correctament a la base de dades uoc, que ja no està buida, i en executar show dbs ja ens mostra la base de dades uoc.

Analitzarem la instrucció db.createCollection(“chr1”); i ens servirà per entendre com funcionen les instriccions a MongoDB. Com que ja som a la base de dades uoc, amb la part de la instrucció db..... es refereix a la base de dades que estem fent servir, i a continuació la instrucció createCollection() que en realitat és una funció que pot fer servir paràmetres entre parèntesis.

Com ja veurem, la majoria d’instruccions són funcions que poden fer servir o no paràmetres. Si la instrucció no necessita paràmetres deixarem els parèntesis buits ().

Anem a veure algunes ordres útils de MongoDB:

  • db.help() Mostra l’ayuda per als mètodes de la base de dades.
  • db.<collection>.help() Mostra l’ajuda per als mètodes de la col·lecció. La <collection> pot ser el nom d’una col·lecció ja creada o encara no creada.
  • Show db Mostra la llista de totes les bases de dades del sistema.
  • use db Canvia la base de dades actual a la base de dades.
  • show collections Mostra la llista de totes les col·leccions de la base de dades actual.
  • show users Mostra la llista de tots els usuaris de la base de dades actual.
  • show databases Nou a partir de la versió 2.4. Mostra la llista de totes les bases de dades disponibles.
  • db.<collection>.find() Mostra tots els documents de la col·lecció <collection>.
  • db.<collection>.find().pretty() Mostra tots els documents de la col·lecció <collection> en un format JSON més llegible.

Per veure les col·leccions creades a la base de dades fem servir la instrucció següent:

show collections
Figura 77. Mostrar les col·leccions de documents.
Font: elaboració pròpia.