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 04:53 25 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 −