Diferencia entre revisiones de «Usuario:ManuelRomero/mongoDB»

De WikiEducator
Saltar a: navegación, buscar
(Instalación en linux ubuntu)
Línea 29: Línea 29:
 
  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
 
  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
 
</source>
 
</source>
 
+
*Actualizamos los paquetes
#Agregamos el sitio de donde instalar paquetes a nuestro source.list
+
<source lang=bash>
+
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
+
</source>
+
#Actualizamos los paquetes
+
 
<source lang=bash>
 
<source lang=bash>
 
  sudo apt-get update
 
  sudo apt-get update
 
<source>
 
<source>
#Instalamos mongo
+
*Instalamos mongo
  sudo apt-get install -y mongodb-org
+
<source lang=bash>
 +
  sudo apt-get install mongodb-org
 +
</source>
  
 
===Ejecutando===
 
===Ejecutando===
Línea 47: Línea 44:
 
   mongod -version
 
   mongod -version
 
Documentación
 
Documentación
*Conviene leerse la documentación de http://www.mongodb.org primero, que está bastante bien,  
+
*Conviene leerse la documentación de http://www.mongodb.org primero, se expone de forma muy clara y concisa los difentes conceptos, no obstante realizaremos aquí un resumen que se adapte a lo que queremos utilizar
 
*Importante  aprender a hacer sentencias con JSON  
 
*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...)
+
*Considereo muy importante aprender  qué estamos haciendo, más que cómo hacemos las llamadas al controlador de bajo nivel...
  
*Para hacer pruebas, recomendado instalarse MongoDB y rockmongo (que es como un phpMyAdmin pero de MongoDB):  
+
*Para hacer pruebas, recomendado instalarse MongoDB , Mongochef, Rockmongo ( sería cómo línea de comandos mysql o bien herramientas gráfics tipo  phpMyAdmin  o workbench, lógicamente con el gestor MongoDB).
  http://code.google.com/p/rock-php/wiki/rock_mongo
+
*Vamos a trabajar con MongoChef , es muy intuitivo y gráfico, y a la vez con MongoDB para ver la línea de comandos
 +
{{MRM_Web|Title=Referenicas de instalación |
 +
https://github.com/iwind/rockmongo    [https://github.com/iwind/rockmongo  Rock_mongo]
 +
  https://studio3t.com/ [https://studio3t.com/ MongoChef]
 +
*Otras referencias web
 +
https://scalegrid.io/blog/which-is-the-best-mongodb-gui/
 +
https://data-flair.training/blogs/rockmongo-in-mongodb/
 +
 
 +
}}
  
 
===Concepto===
 
===Concepto===
 
*Mongo db es una base de datos de documentos '''''Document Database'''''
 
*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 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
 
*En Mongo una Base de datos es un conjunto de colecciones
 
*Una coleccion es un conjunto o serie de documentos
 
*Una coleccion es un conjunto o serie de documentos

Revisión de 23:05 23 mar 2020

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
  • Actualizamos los paquetes
 sudo apt-get update
<source>
*Instalamos mongo
<source lang=bash>
 sudo apt-get install  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, se expone de forma muy clara y concisa los difentes conceptos, no obstante realizaremos aquí un resumen que se adapte a lo que queremos utilizar
  • Importante aprender a hacer sentencias con JSON
  • Considereo muy importante aprender qué estamos haciendo, más que cómo hacemos las llamadas al controlador de bajo nivel...
  • Para hacer pruebas, recomendado instalarse MongoDB , Mongochef, Rockmongo ( sería cómo línea de comandos mysql o bien herramientas gráfics tipo phpMyAdmin o workbench, lógicamente con el gestor MongoDB).
  • Vamos a trabajar con MongoChef , es muy intuitivo y gráfico, y a la vez con MongoDB para ver la línea de comandos




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
  1. 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"
    }
}
  • Orquetamos en el directorio del nuevo proyecto
 composer update