Diferencia entre revisiones de «Usuario:ManuelRomero/mongoDB/crud»
De WikiEducator
(Página creada con «{{:Usuario:ManuelRomero/mongoDB/nav}}») |
|||
| Línea 1: | Línea 1: | ||
{{:Usuario:ManuelRomero/mongoDB/nav}} | {{:Usuario:ManuelRomero/mongoDB/nav}} | ||
| + | ===Mongo gestión en línea de comandos=== | ||
| + | |||
| + | − | ||
| + | https://docs.mongodb.com/manual/core/databases-and-collections/ | ||
| + | |||
| + | − | ||
| + | *Vamos a usar mongo como usaríamos mysql en línea de comnados | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | mongo | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | *Seleccionar una base de datos en mongo | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | use <db> | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | *Crear una base de datos en mongo, consiste en especificar una que no existe | ||
| + | |||
| + | − | ||
| + | use <new_db> | ||
| + | |||
| + | − | ||
| + | *Ver las colecciones de una base de datos | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | show collections | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | *Crear una colección nueva, al insertar el primer documento en una collección que no exista, ésta se crea | ||
| + | |||
| + | − | ||
| + | *Para insertar un documento usamos el método '''''save()''''' | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | use datos_manuel | ||
| + | |||
| + | − | ||
| + | db.datos_manuel.amigos() | ||
| + | |||
| + | − | ||
| + | show collections | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | *Ver la estructura de una colección | ||
| + | |||
| + | − | ||
| + | |||
| + | − | ||
| + | |||
| + | − | ||
| + | *Ver el contenido de una coleccion (select * from tabla) | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | db.<colecion>.find() | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | *Dar a la salida un formato más legible | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | db.<colecion>.find().pretty() | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | |||
| + | − | ||
| + | ===MongoDB y PHP=== | ||
| + | |||
| + | − | ||
| + | *Instalar el driver | ||
| + | |||
| + | − | ||
| + | #Interrogamos al sistema para ver si el driver está instalado | ||
| + | |||
| + | − | ||
| + | php --re mongo | ||
| + | |||
| + | − | ||
| + | *En nuestro caso obtenemos la siguiente respuesta, por lo que no está instalado | ||
| + | |||
| + | − | ||
| + | Exception: Extension mongo does not exist | ||
| + | |||
| + | − | ||
| + | *Para instalarlo lo podemos hacer de diferentes modos. En nuestro caso usaremos pecl | ||
| + | |||
| + | − | ||
| + | sudo pecl install mongo | ||
| + | |||
| + | − | ||
| + | *Es importante leer la última línea de la instación | ||
| + | |||
| + | − | ||
| + | ... | ||
| + | |||
| + | − | ||
| + | You should add "extension=mongo.so" to php.ini | ||
| + | |||
| + | − | ||
| + | *Pues lo hacemos | ||
| + | |||
| + | − | ||
| + | |||
| + | − | ||
| + | *Si posteriormente queremos acutalizar | ||
| + | |||
| + | − | ||
| + | sudo pecl update-channels | ||
| + | |||
| + | − | ||
| + | sudo pecl upgrade mongo | ||
| + | |||
| + | − | ||
| + | *No olvidemos rebotar el sistema para que el driver tenga funcionalidad en el mismo | ||
| + | |||
| + | − | ||
| + | *En mi caso aún no funcionaba y he realizado lo siguiente: | ||
| + | |||
| + | − | ||
| + | Crear un fichero mongo.ini para que cargue la extension | ||
| + | |||
| + | − | ||
| + | |||
| + | |||
| + | − | ||
| + | #/etc/php5/mods-available $ sudo ln -s ../mods-available/mongo.ini mongo.ini | ||
| + | |||
| + | − | ||
| + | *El contenido del fichero mongo.ini | ||
| + | |||
| + | − | ||
| + | extension=mongo.so | ||
| + | |||
| + | − | ||
| + | *Reboto el servicio y verifico que está el módulo | ||
| + | |||
| + | − | ||
| + | php --re monog | ||
| + | |||
| + | − | ||
| + | o | ||
| + | |||
| + | − | ||
| + | php -m | ||
| + | |||
| + | − | ||
| + | |||
| + | − | ||
| + | ;Nomenglatura | ||
| + | |||
| + | − | ||
| + | Tabla colección o collection | ||
| + | |||
| + | − | ||
| + | fila o tupla | ||
| + | |||
| + | − | ||
| + | campo | ||
| + | |||
| + | − | ||
| + | valor del campo | ||
| + | |||
| + | − | ||
| + | consulta | ||
| + | |||
| + | − | ||
| + | diccionario o dictionary | ||
| + | |||
| + | − | ||
| + | ;Conectar a la bd | ||
| + | |||
| + | − | ||
| + | mongo | ||
| + | |||
| + | − | ||
| + | ;seleccionando BD | ||
| + | |||
| + | − | ||
| + | *Muestra la bd con la que actualmente estoy trabajando, por defecto '''''test''''' | ||
| + | |||
| + | − | ||
| + | db | ||
| + | |||
| + | − | ||
| + | *Mostrar todas las bases de datos del sistema que contengan algo de información | ||
| + | |||
| + | − | ||
| + | show dbs | ||
| + | |||
| + | − | ||
| + | *Cambiar a una base de datos llamada local | ||
| + | |||
| + | − | ||
| + | use local | ||
| + | |||
| + | − | ||
| + | ; | ||
| + | |||
| + | − | ||
| + | |||
| + | − | ||
| + | ===Autorización=== | ||
| + | |||
| + | − | ||
| + | *Si usamos autorización ya no cualquiera puede hacer cualquier cambio en la base de datos | ||
| + | |||
| + | − | ||
| + | *Para autorizarse | ||
| + | |||
| + | − | ||
| + | db.auth("user","pass"); | ||
| + | |||
| + | − | ||
| + | *(user y pass son las credenciales). | ||
| + | |||
| + | − | ||
| + | ==Práctica== | ||
| + | |||
| + | − | ||
| + | *Instalamos mongodb en docker | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | docker run --name mongodb -p 27017:27017 -v mongodbdata:/data/db mongo | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | *Instalamos la librería de php para utilizar mongo | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | sudo apt-get install php-mongodb | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | |||
| + | − | ||
| + | *creamos '''''composer.json''''' | ||
| + | |||
| + | − | ||
| + | <source lang=php> | ||
| + | |||
| + | − | ||
| + | { | ||
| + | |||
| + | − | ||
| + | "require": { | ||
| + | |||
| + | − | ||
| + | "mongodb/mongodb":"^1.0.0" | ||
| + | |||
| + | − | ||
| + | } | ||
| + | |||
| + | − | ||
| + | } | ||
| + | |||
| + | − | ||
| + | </source> | ||
| + | |||
| + | − | ||
| + | *Orquestamos en el directorio del nuevo proyecto | ||
| + | |||
| + | − | ||
| + | <source lang=bash> | ||
| + | |||
| + | − | ||
| + | composer update | ||
| + | |||
| + | − | ||
| + | </source> | ||
Última revisión de 15:53 24 mar 2020
Mongo gestión en línea de comandos
−
https://docs.mongodb.com/manual/core/databases-and-collections/
−
- Vamos a usar mongo como usaríamos mysql en línea de comnados
−
− mongo −
−
- Seleccionar una base de datos en mongo
−
− use <db> −
−
- Crear una base de datos en mongo, consiste en especificar una que no existe
−
use <new_db>
−
- Ver las colecciones de una base de datos
−
− show collections −
−
- Crear una colección nueva, al insertar el primer documento en una collección que no exista, ésta se crea
−
- Para insertar un documento usamos el método save()
−
− use datos_manuel − db.datos_manuel.amigos() − show collections −
−
- Ver la estructura de una colección
−
−
−
- Ver el contenido de una coleccion (select * from tabla)
−
− db.<colecion>.find() −
−
- Dar a la salida un formato más legible
−
− db.<colecion>.find().pretty() −
−
−
MongoDB y PHP
−
- Instalar el driver
−
- Interrogamos al sistema para ver si el driver está instalado
−
php --re mongo
−
- En nuestro caso obtenemos la siguiente respuesta, por lo que no está instalado
−
Exception: Extension mongo does not exist
−
- Para instalarlo lo podemos hacer de diferentes modos. En nuestro caso usaremos pecl
−
sudo pecl install mongo
−
- Es importante leer la última línea de la instación
−
...
−
You should add "extension=mongo.so" to php.ini
−
- Pues lo hacemos
−
−
- Si posteriormente queremos acutalizar
−
sudo pecl update-channels
−
sudo pecl upgrade mongo
−
- No olvidemos rebotar el sistema para que el driver tenga funcionalidad en el mismo
−
- En mi caso aún no funcionaba y he realizado lo siguiente:
− Crear un fichero mongo.ini para que cargue la extension
−
−
#/etc/php5/mods-available $ sudo ln -s ../mods-available/mongo.ini mongo.ini
−
- El contenido del fichero mongo.ini
−
extension=mongo.so
−
- Reboto el servicio y verifico que está el módulo
−
php --re monog
− o
−
php -m
−
−
- Nomenglatura
−
Tabla colección o collection
−
fila o tupla
−
campo
−
valor del campo
−
consulta
−
diccionario o dictionary
−
- Conectar a la bd
−
mongo
−
- seleccionando BD
−
- Muestra la bd con la que actualmente estoy trabajando, por defecto test
−
db
−
- Mostrar todas las bases de datos del sistema que contengan algo de información
−
show dbs
−
- Cambiar a una base de datos llamada local
−
use local
−
−
−
Autorización
−
- Si usamos autorización ya no cualquiera puede hacer cualquier cambio en la base de datos
−
- Para autorizarse
−
db.auth("user","pass");
−
- (user y pass son las credenciales).
−
Práctica
−
- Instalamos mongodb en docker
−
− docker run --name mongodb -p 27017:27017 -v mongodbdata:/data/db mongo −
−
- Instalamos la librería de php para utilizar mongo
−
− sudo apt-get install php-mongodb −
−
−
- creamos composer.json
−
− { − "require": { − "mongodb/mongodb":"^1.0.0" − } − } −
−
- Orquestamos en el directorio del nuevo proyecto
−
− composer update −
