bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


accedint_mongodb

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
accedint_mongodb [2020/02/17 15:45]
enric_mieza_sanchez [Connectant amb MongoDB Atlas]
accedint_mongodb [2022/01/26 18:46] (actual)
enrique_mieza_sanchez [Accedint a MongoDB]
Línia 5: Línia 5:
 Aquest article està orientat a la connexió a MongoDB a través de diferents llenguatges de programació. Aquest article està orientat a la connexió a MongoDB a través de diferents llenguatges de programació.
  
-Es recomana utilitzar una versió més avançada de MongoDB que la que hi ha als respositoris d'Ubuntu 16.04 (porta versions 2.x). Si la versió de MongoDB és 2.x o menor, algunes eines com Robomongo o Studio 3T no ens funcionaran bé. A Ubuntu 18.04 hi ha MongoDB > 3.x, cap problema, doncs.+Es recomana utilitzar una versió avançada de MongoDB. Si la versió de MongoDB és 2.x o menor, algunes eines com Robomongo o Studio 3T no ens funcionaran bé. A Ubuntu 18.04 hi ha MongoDB > 3.x, cap problema, doncs (però a Ubuntu 16.04 tenien versions 2.x i no eren viables).
  
 Recursos: Recursos:
Línia 12: Línia 12:
   * https://robomongo.org facilita la gestió i fer proves, tot i que la //shell// de MongoDB és força còmoda ja que utilitza JavaScript com a llenguatge nadiu.   * https://robomongo.org facilita la gestió i fer proves, tot i que la //shell// de MongoDB és força còmoda ja que utilitza JavaScript com a llenguatge nadiu.
   * [[https://www.mongodb.com/cloud/atlas|Mongo Atlas]] és un servei de BD Mongo al núvol que ens permet un cluster gratuït.   * [[https://www.mongodb.com/cloud/atlas|Mongo Atlas]] és un servei de BD Mongo al núvol que ens permet un cluster gratuït.
 +
 +{{mdb-vs-sql.png?direct}}
  
 Importa amb ''mongorestore'' la base de dades de prova {{movies-mongo-dump.rar}}. La utilitat d'importació habitual és ''mongoimport'', però en aquest cas farem servir ''mongorestore'' ja que les dades estan en format binari). Importa amb ''mongorestore'' la base de dades de prova {{movies-mongo-dump.rar}}. La utilitat d'importació habitual és ''mongoimport'', però en aquest cas farem servir ''mongorestore'' ja que les dades estan en format binari).
  
 +{{tag> #FpInfor #Dam #DamMp06 #DamMp06Uf3 #DamMp06Uf03 #Daw #DawMp07 #DawMp07Uf3 #DawMp07Uf03 nodejs mongodb mongo node nosql bbdd }}
 +
 +\\
  
 ===== MongoDB i PHP ===== ===== MongoDB i PHP =====
Línia 69: Línia 74:
  
  
 +
 +
 +\\
  
 ===== MongoDB amb NodeJS ===== ===== MongoDB amb NodeJS =====
Línia 164: Línia 172:
  
 Visita la web amb el browser a (cal abans crear les plantilles ejs descrites més avall) Visita la web amb el browser a (cal abans crear les plantilles ejs descrites més avall)
-  http:localhost:3000+  http://localhost:3000
      
 Prova la API amb la comanda: Prova la API amb la comanda:
Línia 177: Línia 185:
   * ''db.collection().find().toArray()'' ens retorna un array amb les dades extretes. Abans de cridar ''toArray'' hem d'estar segurs que tindrem prou memòria RAM per poder emmagatzemar les dades. Fer una query que retorni molts resultats pot ser perillós ja que podria saturar el servidor.   * ''db.collection().find().toArray()'' ens retorna un array amb les dades extretes. Abans de cridar ''toArray'' hem d'estar segurs que tindrem prou memòria RAM per poder emmagatzemar les dades. Fer una query que retorni molts resultats pot ser perillós ja que podria saturar el servidor.
  
 +
 +==== ObjectID ====
 +De vegades voldrem accedir a diferents elements de la llibreria de MongoDB per a NodeJS. Per exemple, [[https://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html|per generar ObjectIDs fes un cop d'ull a aquest codi]].
 +
 +\\
  
  
Línia 215: Línia 228:
  
 ==== Contrasenyes segures ==== ==== Contrasenyes segures ====
-Aquest codi anterior captura les variables DBUSER i DBPASS de l'entorn de la //shell//, la qual cosa va bé, però resulta una mica incòmode ajustar les variables cada cop que engeguem la màquina. Per estalviar-nos aquest pas, podem posar les variable a l'arxiu ''.env'', però **afegint ''.env'' al ''.gitignore'' per evitar que pugem aquest arxiu amb contasenyes al repositori de codi.+Aquest codi anterior captura les variables DBUSER i DBPASS de l'entorn de la //shell//, la qual cosa va bé, però resulta una mica incòmode ajustar les variables cada cop que engeguem la màquina. Per estalviar-nos aquest pas, podem posar les variable a l'arxiu ''.env'', però **afegint ''.env'' al ''.gitignore'' per evitar que pugem aquest arxiu amb contasenyes al repositori de codi**.
  
-Utilitza el [[https://www.npmjs.com/package/dotenv|paquet dotenv de npm]] per carregar les variables d'entorn de l'arxiu ''.env'':+Utilitza el [[https://www.npmjs.com/package/dotenv|paquet dotenv de npm]] per carregar les variables d'entorn de l'arxiu ''.env''. Tindrem un arxiu '.env' com ara: 
 +  DBUSER=user 
 +  DBPASS=P@ssw0rd 
 + 
 +I podem carregar-lo tal i com diu la documentació, amb: 
 +<sxh javascript> 
 +require('dotenv').config() 
 +</sxh> 
 + 
 +\\
  
 ===== Exercici DB films ===== ===== Exercici DB films =====
  
 +<WRAP todo>
 Importa amb ''mongorestore'' la base de dades de prova {{movies-mongo-dump.rar}}. Importa amb ''mongorestore'' la base de dades de prova {{movies-mongo-dump.rar}}.
- 
  
 Crea una web amb la base de dades de films que implementi: Crea una web amb la base de dades de films que implementi:
Línia 235: Línia 257:
   - Filtrar que només es pugui valorar un cop amb el ID del cookie de sessió (quan canvia de IDsession es pot tornar a votar).   - Filtrar que només es pugui valorar un cop amb el ID del cookie de sessió (quan canvia de IDsession es pot tornar a votar).
  
 +</WRAP>
 +
 +\\
  
accedint_mongodb.1581954354.txt.gz · Darrera modificació: 2020/02/17 15:45 per enric_mieza_sanchez