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 Següent revisió Ambdós costats nova versio | ||
accedint_mongodb [2020/02/01 11:58] enric_mieza_sanchez |
accedint_mongodb [2022/01/26 18:44] 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ó | + | {{mdb-vs-sql.png? |
+ | |||
+ | 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 15: | Línia 17: | ||
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). | ||
+ | </ | ||
+ | |||
+ | \\ | ||