Usuario:ManuelRomero/mongoDB/crud

De WikiEducator
Saltar a: navegación, buscar


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

  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"
 
−	
    }
 
−	
}
 
−

  • Orquestamos en el directorio del nuevo proyecto

 
−	
 composer update
 
−