|
|
(11 revisiones intermedias por el mismo usuario no mostrado) |
Línea 1: |
Línea 1: |
| + | {{:Usuario:ManuelRomero/mongoDB/nav}} |
| ===Instalación en linux ubuntu=== | | ===Instalación en linux ubuntu=== |
| <br /> | | <br /> |
Línea 9: |
Línea 10: |
| }} | | }} |
| | | |
− | *Proceso de instalación en ubuntu14.04
| + | {{MRM_Objetivo|Qué se verá en este tema| |
− | #Importamos la clave pública para garantizar la autentificación de los paquetes
| + | *Ver Mongo como otro gestor de bases de datos de tipo noSQKL |
− | wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
| + | |
− | *Para la instalacción necesitamos disponer de una implementación de openPGP | + | |
− | *[https://www.goanywhere.com/managed-file-transfer/encryption/open-pgp?__hstc=265834128.c6b8aa7425238171dc3bd42aeb8be117.1584955950745.1584955950745.1584955950745.1&__hssc=265834128.1.1584955950746&__hsfp=1619013292]'''''|OpenPGP''''']
| + | |
− | es un estándar de código abierto de '''PGP''' '''''Pretty Good Privacy para uso público.
| + | |
| | | |
| | | |
− | #Agregamos el sitio de donde instalar paquetes a nuestro source.list
| |
− | echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
| |
− | #Actualizamos los paquetes
| |
− | sudo apt-get update
| |
− | #Instalamos mongo
| |
− | sudo apt-get install -y mongodb-org
| |
| | | |
− | ===Ejecutando===
| |
− | *Arrancamos el servicio
| |
− | sudo service mongod start
| |
− | *Miramos la versión instalada (Se habrá instalado la última estable)
| |
− | mongod -version
| |
− | Documentación
| |
− | *Conviene leerse la documentación de http://www.mongodb.org primero, que está bastante bien,
| |
− | *Importante aprender a hacer sentencias con JSON
| |
− | *Interesa saber más qué estamos haciendo que cómo hacemos luego las llamadas al controlador de bajo nivel...)
| |
| | | |
− | *Para hacer pruebas, recomendado instalarse MongoDB y rockmongo (que es como un phpMyAdmin pero de MongoDB):
| + | }} |
− | http://code.google.com/p/rock-php/wiki/rock_mongo
| + | |
− | | + | |
− | ===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
| + | |
− | *En Mongo una Base de datos es un conjunto de colecciones
| + | |
− | *Una coleccion 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
| + | |
− | ===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>
| + | |
− | *Orquetamos en el directorio del nuevo proyecto
| + | |
− | <source lang=bash>
| + | |
− | composer update
| + | |
− | </source>
| + | |