Usuario:ManuelRomero/mongoDB

De WikiEducator
Saltar a: navegación, buscar

Instalación en linux ubuntu





  • Proceso de instalación en ubuntu14.04
  1. Importamos la clave pública para garantizar la autentificación de los paquetes
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

Plantilla:MMR Actividad

sudo apt-get install gnupg
  • Una vez instalado descargamos la clave pública del sitio web y la agregamos a nuestro fichero de claves públicas de claves pública
 wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
  • Ahora creamos un nuevo repositorio de instalaciones, para lo cual en nuestro directorio de /etc/apt/sources.list.d vamos a agregar un nuevo fichero con ubicaciones de repositorios de dónde instalar paquetes.
  • Esto lo hacemos con el siguiente comando
 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
  1. 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
  1. Actualizamos los paquetes
 sudo apt-get update
<source>
#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
  • Instalamos la librería de php para utilizar mongo
 sudo apt-get install php-mongodb
  • creamos composer.json
{
    "require": {
        "mongodb/mongodb":"^1.0.0"
    }
}
  • Orquetamos en el directorio del nuevo proyecto
 composer update