Consultas con MongoDB

Posted by in MongoDB

En las entradas previas hemos hablado de MongoDB, un servidor de bases de datos NoSQL que estña muy de moda. Hemos aprendido a instalarlo y cómo arrancarlo. Ahora vamos a trabajar con él.

En una consola, ejecutamos mongo:

Iniciando MongoDB

Iniciando MongoDB

Para ver las bases de datos que tenemos, utilizamos show dbs.

mongodb Show dbs

mongodb Show dbs

Como el lenguaje que hay debajo es JavaScript, hay que tener en cuenta que las mayúsculas y las minúsculas afectan. Probamos SHOW dbs en varias formas, y vemos que en todas da error (excepto cuando lo escribimos en minúscula):

MongoDB & Javascript

MongoDB & Javascript

Para usar una base de datos, al igual que en MySQL, tenemos el comando use manejandodatos:

MongoDB - use manejandodatos

MongoDB – use manejandodatos

Comprobamos que estamos en una consola de JavaScript, escribirendo una simple operación matemática:

MongoDB & Javascript

MongoDB & Javascript

Vamos a crear los primeros documentos:

dato1 = { nombre: 'Juan' };
dato2 = { edad: 34 };

Y los guardo en la colección amigos con save:

db.amigos.save(dato1);
db.amigos.save(dato2);

MongoDB - Guardando datos

MongoDB – Guardando datos

Vamos a mostrar los registros de «amigos«. Lo que en SQL equivaldria a SELECT * FROM amigos se escribe db.amigos.find():

MongoDB - Mostrando documentos

MongoDB – Mostrando documentos

La sentencia INSERT amigos(campos) VALUES (valor) de SQL es transformada en db.amigos.save({ campo: valor })

MongoDB

MongoDB

Ya tenemos 3 amigos, y hemos probado a insertar. Ahora vamos a actualizar datos. La sentencia UPDATE amigos SET campo = valor WHERE condicion es equivalente a db.amigos.update( { condicion } , { campo: valor } )

MongoDB - Actualizando documentos

MongoDB – Actualizando documentos

Si se fijan bien en la imagen anterior, hemos cambiado la información Nombre: Luis por Edad: 32. Es decir, se ha cambiado el identificador y la clave, aun siendo datos de distintos tipos.

Para actualizar con nuevas propiedades a un documento (o conjunto de documentos), hay que agregar $set, u $unset para eliminar. Procedemos a insertar un nombre al registro sin nombre:

MongoDB - Actualizando documentos

MongoDB – Actualizando documentos

Si queremos saber el número de documentos, en SQL lo haremos SELECT COUNT(*) FROM amigos, mientras que en MongoDB lo haremos db.amigos.count():

MongoDB - Agregados

MongoDB – Agregados

Por úlimo, la sentencia SQL DELETE FROM tabla es similar a db.amigos.remove():

MongoDB - Remove

MongoDB – Remove

Si en lugar de eliminar todos los registros, queremos «reiniciarlizar» el objeto, lo que en MySQL seria la sentencia TRUNCATE, aquí podemos hacer exactamente igual con la sentencia db.amigos.drop().

La diferencia entre remove y drop es que la primera hace el borrado registro a registro, mientras que drop lo hace en una sola operación. Para colecciones pequeñas, no tiene mucha repercusión, pero sí para colecciones grandes.

Espero les sea de utilidad esta segunda toma de contacto!