Usuario:ManuelRomero/mongoDB/conceptos
De WikiEducator
< Usuario:ManuelRomero | mongoDB
Revisión a fecha de 04:35 25 mar 2020; ManuelRomero (Discusión | contribuciones)
Concepto
- Mongo db es una base de datos de documentos Document Database
- En lugar de Base de datos, tablas, columnas y filas, tenemos base de datos, colecciones y documentos
- La siguiente figura trata de mostrar la comparativa entre elementos
- Las bases de datos en sql serán bases de datos en mongo
- Los tablas en sql serán colleciones en mongo
−
- Los registros o tuplas serán documentos en mongo
−
- Un campo será un elemento del documento (campo en el json o array).
−
−
−
- En Mongo una Base de datos es un conjunto de colecciones
−
- Una colección es un conjunto o serie de documentos
−
- Un documento es igual que un array asociativo en php. Puede ser multidimensional
−
- Una colección es como una tabla; Es un conjunto de documentos e índices
−
−
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 −