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:
Para ver las bases de datos que tenemos, utilizamos 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):
Para usar una base de datos, al igual que en MySQL, tenemos el comando use manejandodatos:
Comprobamos que estamos en una consola de JavaScript, escribirendo una simple operación matemática:
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);
Vamos a mostrar los registros de “amigos“. Lo que en SQL equivaldria a SELECT * FROM amigos se escribe db.amigos.find():
La sentencia INSERT amigos(campos) VALUES (valor) de SQL es transformada en db.amigos.save({ campo: valor })
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 } )
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:
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():
Por úlimo, la sentencia SQL DELETE FROM tabla es similar a db.amigos.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!