Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
accedint_mongodb [2020/02/01 11:57] enric_mieza_sanchez [Connection Pooling] |
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ó | + | 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 11: | Línia 11: | ||
| * [[https:// | * [[https:// | ||
| * https:// | * https:// | ||
| - | * [[https:// | + | * [[https:// |
| + | |||
| + | {{mdb-vs-sql.png? | ||
| Importa amb '' | Importa amb '' | ||
| + | {{tag> #FpInfor #Dam #DamMp06 #DamMp06Uf3 # | ||
| + | |||
| + | \\ | ||
| ===== MongoDB i PHP ===== | ===== MongoDB i PHP ===== | ||
| Línia 69: | Línia 74: | ||
| + | |||
| + | |||
| + | \\ | ||
| ===== MongoDB amb NodeJS ===== | ===== MongoDB amb NodeJS ===== | ||
| Línia 92: | Línia 100: | ||
| Per gestionar les connexions a MongoDB dins d'una aplicació web (concorrent per natura) es recomana fer 1 sola connexió per la //app//, i reutilitzar l' | Per gestionar les connexions a MongoDB dins d'una aplicació web (concorrent per natura) es recomana fer 1 sola connexió per la //app//, i reutilitzar l' | ||
| - | Per inicar el projecte node, crea dins d'una carpeta: | + | Per inicar el projecte node, crea **dins d'una carpeta**: |
| $ npm init | $ npm init | ||
| $ npm install express body-parser ejs mongodb | $ npm install express body-parser ejs mongodb | ||
| Línia 141: | Línia 149: | ||
| return; | return; | ||
| } | } | ||
| + | // renderitzem la plantilla q hem de crear a views/ | ||
| res.render( ' | res.render( ' | ||
| }); | }); | ||
| Línia 156: | Línia 165: | ||
| return; | return; | ||
| } | } | ||
| + | // transformem l' | ||
| res.send( JSON.stringify(docs) ); | res.send( JSON.stringify(docs) ); | ||
| }); | }); | ||
| Línia 162: | 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: | + | http://localhost: |
| | | ||
| Prova la API amb la comanda: | Prova la API amb la comanda: | ||
| Línia 176: | Línia 186: | ||
| + | ==== ObjectID ==== | ||
| + | De vegades voldrem accedir a diferents elements de la llibreria de MongoDB per a NodeJS. Per exemple, [[https:// | ||
| + | |||
| + | \\ | ||
| + | |||
| + | |||
| + | ===== Connectant amb MongoDB Atlas ===== | ||
| + | Obriu-vos un compte a [[https:// | ||
| + | |||
| + | Si busqueu com connectar al vostre // | ||
| + | mongodb+srv:// | ||
| + | |||
| + | ... que significa que em puc connectar a l' | ||
| + | |||
| + | Modifiqueu el codi de l' | ||
| + | |||
| + | Abans d' | ||
| + | $ export DBUSER=admin | ||
| + | $ export DBPASS=P@ssw0rd | ||
| + | $ node app.js | ||
| + | |||
| + | <sxh javascript> | ||
| + | // connexió a mongo i start app | ||
| + | var mongo = require(' | ||
| + | var mongoClient; | ||
| + | // consts | ||
| + | const PORT = process.env.PORT || 5000 | ||
| + | const user = encodeURIComponent( process.env.DBUSER ); | ||
| + | const pass = encodeURIComponent( process.env.DBPASS ); | ||
| + | var dbConStr = " | ||
| + | mongo.connect( dbConStr, function( err, _client ) { | ||
| + | // si no ens podem connectar, sortim | ||
| + | if( err ) throw err; | ||
| + | mongoClient = _client; | ||
| + | // si no hi ha cap error de connexió, engeguem el servidor | ||
| + | app.listen(PORT, | ||
| + | console.log(' | ||
| + | }); | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | ==== Contrasenyes segures ==== | ||
| + | Aquest codi anterior captura les variables DBUSER i DBPASS de l' | ||
| + | |||
| + | Utilitza el [[https:// | ||
| + | DBUSER=user | ||
| + | DBPASS=P@ssw0rd | ||
| + | |||
| + | I podem carregar-lo tal i com diu la documentació, | ||
| + | <sxh javascript> | ||
| + | require(' | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| ===== Exercici DB films ===== | ===== Exercici DB films ===== | ||
| + | <WRAP todo> | ||
| Importa amb '' | Importa amb '' | ||
| - | |||
| 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 193: | 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). | ||
| + | </ | ||
| + | |||
| + | \\ | ||