Jam Blog

¡Respaldo de cosas que podria necesitar luego!

Usos basicos de MongoDB Console

09 January 2011

Y seguimos con mas pruebas de NoSQL :D … Hace unos dias comentaba como instalar MongoDB en Ubuntu 10.10, ahora veremos algunos usos basicos de la consola de administracion que incluye MongoDB para almacenar informacion, hacer algunas consultas entre otras tareas administrativas.

Para acceder a la consola administrativa de MongoDB tan solo debemos escribir en la teminal:

mongo

esto nos devolvera:

MongoDB shell version: 1.6.5
connecting to: test

Al hacer esto ejecutaremos la consola de MongoDB la cual por defecto intenta conectarse a la instancia MongoDB local (en tu PC) por lo que conviene tener MongoDB ejecutandoce con anterioridad. Cuando arrancamos la consola de esta manera y sin parametros, la misma se conecta a una base de datos llamada “test” en la que podemos hacer nustras primeras pruebas, esto lo podemos comprobar ejecutando el siguiente comando:

db

lo cual nos devolvera el nombre de la base de datos en la qeu estamos la cual es test.

Creando/Usando una base de datos:

Para crear la nueva base de datos llamada “pruebas” tan solo debemos escribir el siguiente comando:

use pruebas

esto nos devolvera algo como:

> use pruebas
switched to db pruebas

Este comando creara la base de datos “pruebas” y nos movera hacia ella, una detalle en este comando es que si por ejemplo la base de datos ya existe, tan solo nos mueve hacia ella para poder usarla, en caso de no existir la base de dato, el sistema la crea.

Creando Colecciones e insertando documentos:

Como les comentaba en el articulo “instalando MongoDB en Ubuntu“  MongoDB es una base de datos del tipo documentos en la que almacena dichos  documentos en una especie de agrupaciones conocidas como colecciones, estas colecciones vendrian siendo algo asi como las tablas en MySQL.

Para crear una coleccion llamada “prueba01” y y almacenar documentos en ella podemos usar el siguiente comando de ejemplo:

db.prueba01.insert({titulo: "Primera prueba", contenido: "Mi primera prueba de insercion de un documento"})

en donde:

  • prueba01 es el nombre de la coleccion donde se encuentra el documento.

  • {titulo: “Primera prueba”, contenido: “Mi primera prueba de insercion de un documento”} es el documento que estamos insertando en la coleccion.

Podemos añadir mas documentos en formato JSON con campos iguales o diferentes al que  acabamos de añadir y estos seran almacenados sin ningun problema, justamente esta es una de las ventajas de las bases de datos NoSQL.

db.prueba01.insert({titulo: "Segunda prueba", contenido: "Mi segunda prueba de insercion de un documento", hora: "03:20 PM", fecha: "9/01/2011"})

Mostrar los documentos almacenados en una coleccion:

Para ver todos los documentos almacenados en nuestra coleccion prueba01 podemos usar el siguiente comando:

db.prueba01.find()

lo cual nos devolvera algo como esto:

{ "_id" : ObjectId("4d2a1f5f9d3ceffc299d0fad"), "titulo" : "Primera prueba", "contenido" : "Mi primera prueba de insercion de un documento" }
{ "_id" : ObjectId("4d2a223b9d3ceffc299d0fae"), "titulo" : "Segunda prueba", "contenido" : "Mi segunda prueba de insercion de un documento", "hora" : "03:20 PM", "fecha" : "9/01/2011" }

en nuestro caso solo hemos almacenado dos documento y esto es lo unico que nos muestra. pero si por ejemplo queremos ver solo un resultado podemos ejecutar el siguiente comando:

db.prueba01.findOne()

el cual nos devolvera algo como:

{
 "_id" : ObjectId("4d2a1f5f9d3ceffc299d0fad"),
 "titulo" : "Primera prueba",
 "contenido" : "Mi primera prueba de insercion de un documento"
}

Listando las bases de datos:

Si queremos obtener un listado de las bases de datos que estan en nuestra instancia MongoDB tan solo tecleamos:

show dbs

y esto nos mostrara las bases de datos que tenemos… en nuestro caso puede devolvernos:

> show dbs
admin
local
pruebas
test

Listando las colecciones en una base de datos:

Para obtener un listado de las colecciones almacenadas en la base de datos en la que nos encontramos podemos teclear:

show collections

el cual nos devolvera

>show collections
perros
prueba01

Consultas “super basicas”:

usando el comando db.prueba01.find() podemos realizar una consulta sencilla pasandole al metodo find() un parametro el cual sera un documento, este documento sera una especie de ejemplo de lo que queremos que sea buscado. Por ejemplo si queremos que se nos muestre el documento en donde esta contenida la Key/Value “hora” : “03:20 PM” podemos pasarle eso mismo como documento:

db.prueba01.find({"hora" : "03:20 PM"})

esto nos devolvera el segundo documento que añadimos hace un rato y en el cual contiene el campo hora : 03:20 PM:

> db.prueba01.find({"hora" : "03:20 PM"})
{ "_id" : ObjectId("4d2a223b9d3ceffc299d0fae"), "titulo" : "Segunda prueba", "contenido" : "Mi segunda prueba de insercion de un documento", "hora" : "03:20 PM", "fecha" : "9/01/2011" }

Por supuesto, esta es una consulta super basica, MongoDB incluye muchas maneras de realizar consultas de este tipo (pasando un documento JSON como parametro), pero uno de los metodos mas potentes es usando funciones Map/Reduce un tanto parecido a como se hace en CouchDB.

Eliminando documentos:

Para eliminar un documento podemos realizarlo de manera similar a como hicimos la consulta anterior, es decir pasar un documento JSON como parametro a una funcion, solo que en este caso la funcion se llama remove():

db.prueba01.remove({"hora" : "03:20 PM"})

Este comando nos elimino el documento que contenia el campo “hora” : “03:20 PM” de la coleccion. prueba a realizar la consulta anterior y veras que ya no aparece dicho documento en la coleccion.

Por supuesto MongoDB y su consola interactiva tiene muchas otras caracteristicas y funciones que requeririan un libro entero para ser explicada en detalle.

como complemento podemos usar el comando:

help

para visualizar un listado de comandos que podemos usar en la consola MongoDB.

Si deseas aprender mas sobre MongoDB visita:





  • submit to reddit
comments powered by Disqus

¿Social?