Diferencia entre revisiones de «Usuario:ManuelRomero/mongoDB»

De WikiEducator
Saltar a: navegación, buscar
(Página reemplazada por «{{:Usuario:ManuelRomero/mongoDB/nav}} ===Instalación en linux ubuntu=== <br /> {{MRM_Web|Title=Referencia oficial| https://docs.mongodb.com/ *Instalación https://d...»)
 
(8 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 -
+
{{MMR_Actividad|Title=Gestión de firmas y claves |
+
*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.
+
*Vamos a instalar, tal como proponen en la página oficial [https://gnupg.org/ gnupg] que es una implementación libre de '''''OpenPGP'''''
+
*Con esta aplicación podremos gestionar las claves públicas y privadas necesarias para la instalación y garantizar que los fuentes vienen de su sitio y no de otro.
+
}}
+
  
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
 
<source lang=bash>
 
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
 
</source>
 
*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
 
<source lang=bash>
 
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>
 
  
#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>
 
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
+
</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>
+

Última revisión de 00:40 25 mar 2020


Instalación en linux ubuntu






Icon objectives.jpg
Objetivo
Qué se verá en este tema