Mostrando entradas con la etiqueta MongoDB. Mostrar todas las entradas
Mostrando entradas con la etiqueta MongoDB. Mostrar todas las entradas

lunes, 2 de febrero de 2015

Diario de un developer

En año nuevo me propuse un reto. Tenía un proyecto pensado desde hacia tiempo, pero no había tenido el valor de intentar hacerlo, básicamente por sus dimensiones.
Estoy desarrollando como un loco, y voy publicando en un blog diario de desarrollo, lo que hago cada día, con un tono menos serio de lo que se esperaría de un blog técnico!


El blog está teniendo bastantes más visitas de las que esperaba!

El tema es:
1 developer, 1 proyecto enorme, 60 días de loco desarrollo, sin dinero, solo tiempo.

O me hará rico o más pobre!

Espero que lo disfrutéis y no dudéis en comentar en el blog, preguntar. También podéis seguirme en twitter: @iwoklocoBlog



jueves, 10 de abril de 2014

MongoDB: borrar una base de datos en MongoDB

Buenas a todos!
Para borrar una base de datos en MongoDB desde la línea de comandos, debemos seleccionar la base de datos que queremos borrar y emplear la instrucción dropDatabase():
Por ejemplo vamos a borrar la base de datos mydb:

root@ubuntu:/# mongo

> show dbs
db0     0.203125GB
db_world        0.203125GB
mydb    0.203125GB

show dbs, nos muestra las bases de datos activas de MongoDB.

> use mydb
switched to db mydb

Seleccionamos como base de datos actual mydb.

> db.dropDatabase()
{ "dropped" : "mydb", "ok" : 1 }

Borramos la base de datos mydb y ahora mostramos de nuevo las bases de datos:

> show dbs
db0     0.203125GB
db_world        0.203125GB

Como podéis ver ya no se muestra mydb en el listado de bases de datos.

Y eso es todo! Un saludo a todos!

MongoDB: crear una base de datos en MongoDB

Buenas a todos!

Crear una base de datos en MongoDB es tan simple como abrir el cliente del servidor en el shell, y usar la instrucción use y el nombre de la base de datos.

root@ubuntu:/# mongo
> use db_nueva
switched to db db_nueva

Esta instrucción comprueba si ya existe la base de datos, y entonces asigna su referencia a la variable db, para que podamos consultar, y realizar otras operaciones sobre esta base de datos en concreto. En caso de que no exista, crea la base de datos.

Si cerramos el cliente en este punto, la base de datos desaparecerá ya que no contiene ninguna collection, que son los equivalentes a las tablas de SQL.
De hecho, si ejecutamos el comando que muestra las bases de datos "show dbs", no mostrará nuestra base de datos.

Basta con que creemos una collection, en este caso products.
> db.createCollection("products")
{ "ok" : 1 }

Una vez hecho esto la base de datos ya se ha creado y podemos verla en la lista de bases de datos:
> show dbs
db_nueva     0.203125GB

Para un acercamiento mayor, podéis visitar el post Hello World MongoDB, introducción a MongoDB!

Un saludete!

Hello World MongoDB, introducción a MongoDB

Buenas a todos!

Voy a hacer una pequeña introducción o Hello world en MongoDB!

A diferencia de las bases de datos relacionales típicas, como Oracle o MySQL, que emplean el lenguaje de declarativo SQL, MongoDB emplea para generar las consultas, inserciones, actualizaciones y eliminaciones, JavaScript!

Además los resultados obtenidos por las consultas están en formato JSON, lo que es perfecto cuando trabajamos con aplicaciones web.

Equivalencias entre conceptos de SQL y conceptos de MongoDB 

En MongoDB no tenemos tablas, trabajamos con collections.

Y lo que equivaldría a una fila o row de una tabla en SQL, en MongoDB es un document o BSON document. Los BSON documents son los que almacenan los objetos json en formato binario.

Los objetos json contienen campos o fields, no columnas como las tablas SQL.

De todas formas ambos sistemas de base de datos emplean las primary keys, para definir los campos que identifican de forma única una fila o un document (objeto json).

Mientras que en SQL hay que especificar la creación de todas las columnas de una tabla, MongoDB de forma automática crea un campo o field llamado _id que contiene la primary key, es un comportamiento por defecto muy útil.

Hello world MongoDB

Muy bien! Vamos a crear una pequeña base de datos a modo de Hello world para MongoDB.

La base de datos se llamará 'db_world' y contendrá paises del mundo, un listado con los idiomas que se hablan y las capitales.

Una vez instalado MongoDB, vamos a ejecutar en el shell de linux, la instrucción "mongo".

Crear la base de datos
> use db_world Si no existe, la crea y asigna a la variable db una referencia a las instancias de db_world.
Si ya existe, asigna a la variable db una referencia a las instancias de db_world.

Crear una collection e insertar un objeto
> db.world.insert({country:"Spain", capital:"Madrid", language:["es","ca","eu","gl"]}) Al realizar el insert se crea automáticamente la collection world, y directamente se inserta el objeto json que contiene los datos del país.

Consultar los datos de una collection
> db.world.find() Genera la salida:
{ "_id" : ObjectId("534665c91895da39bc16ff56"), "country" : "Spain", "capital" : "Madrid", "language" : [ "es", "ca", "eu", "gl" ] }

Como podéis ver automáticamente ha añadido el campo primary key _id, y la salida es el objeto json.

Ahora vamos a añadir otro país:
> db.world.insert({country:"Switzerland", capital:"Berna", language:["fr","de","it"]})

Si volvemos a realizar el find sobre la collection world, generará la siguiente salida:
> db.world.find() Genera la salida:
{ "_id" : ObjectId("534665c91895da39bc16ff56"), "country" : "Spain", "capital" : "Madrid", "language" : [ "es", "ca", "eu", "gl" ] }
{ "_id" : ObjectId("5346665762bac1c0ff258610"), "country" : "Switzerland", "capital" : "Berna", "language" : [ "fr", "de", "it" ] }

find() también nos permite consultar los objetos que contienen un valor específico.
Por ejemplo, supongamos que queremos ver el país cuya capital es Berna:
> db.world.find({capital:"Berna"})
Respuesta:
{ "_id" : ObjectId("5346665762bac1c0ff258610"), "country" : "Switzerland", "capital" : "Berna", "language" : [ "fr", "de", "it" ] }

O algo más complejo, supongamos que queremos ver los países donde se habla francés:
> db.world.find({language:{$in:["fr"]}})
 Respuesta:
{ "_id" : ObjectId("5346665762bac1c0ff258610"), "country" : "Switzerland", "capital" : "Berna", "language" : [ "fr", "de", "it" ] }


Cómo podéis ver, en ningún momento he tenido que declarar la estructura de los objetos que debe contener la collection world, eso es debido a que al igual que los objetos de javascript, las collections de MongoDB no obligan a cumplir una estructura determinada, de hecho su estructura puede variar dinámicamente, añadiendo o quitando campos, mediante el uso de update().

Hasta aquí mi introducción a MongoDB!
Espero que haya sido fácil de entender y que os anime a utilizarlo!

Un saludo a todos!!