Reciente

6/recent/ticker-posts

Introducción a MongoDB



Anteriormente hablamos sobre la creación de bases de datos en SQL y como realizar algunas consultas y gestiones básicas en estas, hoy echaremos un vistazo a mongo DB, que aunque sus sentencias son diferentes tienen ciertos elementos similares, en el en Mongo DB no tenemos tablas como en SQL, si no colecciones, que se podría decir que en cierta forma son su equivalente, estas colecciones están contenidas dentro de una base de datos y dentro de cada colección se almacenan los datos.


Creación de una Base de Datos

En Mongo DB la creación de bases de datos es algo diferente a la de SQL, para crear una base de datos simplemente tendríamos que usar la sentancia USE y el nombre de la base de datos que queramos crear, esta base de datos será creada en el momento en el que insertemos un dato en su interior, para insertar los datos utilizaremos las sentencias db.NombreDeLaColección.save(Parámentros), por ejemplo, si quisieramos crear una base de datos llamada empleados que almacenara los nombres, apellidos y edad de los empleados utilizaríamos la siguientes sentencias:
USE empleados
db.emp.save({nombre:"Antonio", apellido:"Inventadez", edad:25})

Además de la sentencia save también se podría utilizar la sentencia insert para crear la base de datos o insertar elementos en la Colección, por ejemplo:
USE empleados
db.emp.insert({nombre:"Antonio", apellido:"Inventadez", edad:25})

Consultas a la Base de Datos


Para realizar consultas dentro de una base de datos utilizaríamos la sentencia find seguida de los parámetros de búsqueda. por ejemplo, si quisiéramos ver los empleados cuyo nombre sea potato utilizaríamos la siguiente sentencia:
db.emp.find({nombre:"potato"})

Si quisiéramos ajustar el orden en que se muestran los resultados de la sentencia find, después de esta añadiríamos la sentencia sort, indicando en el interior en campo que queremos que se use como referencia para el orden acompañado de 1 para orden ascedente o -1 en orden descendente, por ejemplo, si quisiéramos que la pasada consulta saliera ordenada en orden descendente en función del nombre utilizaríamos:
db.enp.find({nombre:"potato"}).sort({nombre:-1})

En caso de que al realizar una consulta find quisiéramos ocultar algún campo de la colección añadiríamos después de la sentencia find los campos que queramos ocultar seguidos de un 0, por ejemplo, si quisiéramos que se nos mostraran los empleados que se llaman pepito y que se oculte la edad utilizaremos la siguiente sentencia:
db.emp.find({nombre:"pepito"},{edad:0})

Si quisiéramos realizar un recuento de elementos arrojados por una sentencia find añadiríamos la sentencia count después de la sentencia find, por ejemplo, si quisiéramos saber cuantos empleados tienen 25 años haríamos lo siguiente:
db.emp.find({edad:25}).count


Operadores de Comparación:

En caso de que quisiéramos realizar alguna consulta con comparaciones tendríamos a nuestra disposición los siguientes parámetros:

$gt: Mayor que
#Queremos que se muestren los empleados cuya edad sea mayor que 20

db.emp.find({edad:{$gt:20}})

$gte: Mayor o igual que
#Queremos que se nos muestren los empleados con una edad igual o mayor que 20

db.emp.find({edad:{$gte:20}})


$lt: menor que
#Queremos que se nos muestre los empleados con una edad menor de 30

db.emp.find({edad:{$lt:30}})

$lte: menor o igual

#Queremos que se nos muestre los empleados con una edad menor o igual que 30

db.emp.find({edad:{$lte:30}})

$ne: distinto del valor indicado
#queremos que se nos muestren todos los empleados con edad diferente de 20 años
db.emp.find({edad:{$ne:20}})

$in: los resultados estarían en una lista de valores.
#queremos ver todos los empleados cuya edad es 10 o 20 años:
db.emp.find({edad:{$in:[10,20]}})


$nin: queremos que no se vean los resultados que estén entre una lista de valores
#Queremos ver los empleados que no tengan 10 o 20 años
db.emp.find({edad:{$in:[10.20]}})

Operadores Lógicos


Además de los selectores de comparación, también tenemos los selectores lógicos:

$or: Hace la función lógica OR
#Queremos ver los empleados cuya edad sea 10 o se llamen manolo

db.emp.find({$or:[{edad:10},{nombre:"manolo"}]})

$and: Función lógica AND
#Queremos ver los empleados que se apelliden manzano y tengan 100 años

db.emp.find({$and:[{apellido:"manzano"},{edad:100}]})

$not: Función de Negación
#Queremos ver todos los empleados que no se llamen palillo

db.emp.find({$not:{nombre:"palillo"}})


Actualización de datos


Para actualizar documentos dentro de una colección utilizaremos la sentencia Update, para hacer una actualización de datos dentro de una colección contamos con varios operadores:

$set: Actualiza un campo
#Actualiza la edad de manuel a 50

db.emp.update({nombre:"manuel"},{$set:{edad:50}})

$unset: elimina datos
#Elimina el apellido de pepito

db.emp.update({nombre:"pepito"},{$unset:{edad:40}})

$inc: incrementa en una cantidad numérica deifnida el valor numérico de un campo
#Incrementa en 1 la edad de manolo

db.emp.update({nombre:"manolo"},{$inc:{edad:1}})

$rename: Renombra un campo
#cambia el nombre del campo edad por patatas para Antonio

db.emp.update({nombre:"Antonio"},{$rename:{edad:"patatas"}})

Borrado de datos


Para el borrado de datos contamos con 2 sentencias: Remove y Drop.
Para eliminar datos dentro de un documento utilizaríamos la sentencia remove, por ejemplo:
#Borra los datos de antonio de la colección:

db.emp.remove({nombre:"Antonio"})

#Borra todos los datos de la colección emp

db.emp.remove({})

Si quisiéramos borrar una colección utilizaríamos la sentencia drop:
#borra la colección emp
db.emp.drop()

Publicar un comentario

0 Comentarios