Tutorial primeros pasos en Mongo
Este tutorial está enfocado a personas con conocimientos de Linux, JavaScript y JSON.MongoDB es una base de datos documental (NoSQL - Not Only SQL) organizada en bases de datos (como las bases de datos de MySQL o algo similar a los Schemas de Oracle). A su vez las bases de datos se organizan en colecciones (lo que en relacional serían las tablas).
Mongo está muy relacionado con el mundo JavaScript y NodeJS porque la información que almacena y gestiona está en formato JSON.
Recordamos que JSON (JavaScript Object Notation) es un objeto JavaScript con el formato:
{ clave: valor }
Imagina que quieres almacenar una "persona", pues un ejemplo de este objeto sería:
{
"Nombre":"John",
"Apellidos":"Doe",
"DNI":"12345678Z",
"FechaNac": "01-01-1980",
"Sexo": "V"
}
Si complicamos esto un poco, una lista de personas sería (fíjate en la coma):
{
"Nombre":"John",
"Apellidos":"Doe",
"DNI":"12345678Z",
"FechaNac": "01-01-1980",
"Sexo": "V"
} ,
{
"Nombre":"Pepa",
"Apellidos":"Pérez",
"DNI":"87654321X",
"FechaNac": "01-01-1980",
"Sexo": "M"
}
Estos objetos se pueden asignar directamente a una variable en JavaScript y luego acceder a ellos como atributos, ejemplo:
<script>
var unaPersona = {
"Nombre":"John",
"Apellidos":"Doe",
"DNI":"12345678Z",
"FechaNac": "01-01-1980",
"Sexo": "V"
};
document.write(unaPersona.Nombre);
</script>
Instalación
Suponemos que partimos de una máquina Linux 64 bits (por defecto Mongo en 32 bits no tiene activado el journaling para recuperarse de errores inesperados).Podemos descargar el servidor de su Web o bien instalarlo desde el gestor de paquetes de nuestra distribución.
Nosotros tenemos un equipo basado en Ubuntu, así que usamos el comando:
$ sudo apt-get install mongodb mongodb-clients mongodb-server
Probando el servidor
Para conectar a la base de datos "local" de nuestro servidor, abrimos una terminal y escribimos en la consola:juangu@pegasus:~$ mongo
MongoDB shell version: 2.0.4
connecting to: test
> show dbs
local 0.0625GB
> use local
switched to db local
- El comando "show dbs" nos mostrará las bases de datos que tenemos en el servidor y el espacio ocupado.
- El comando "use local", es similar al de MySQL e indica al cliente que use la base de datos "local".
Consultando las colecciones de documentos disponibles
Para operar sobre una colección seguimos la nomenclatura "db.nombreColeccion.operacion()", como podemos ver en este ejemplo:> use local
> show collections
system.indexes
testData
> db.testData.find()
{ "_id" : ObjectId("54e0ea85d8d26ebe65f13132"), "name" : "mongo" }
{ "_id" : ObjectId("54e0ea85d8d26ebe65f13133"), "x" : 3 }
>
Insertando datos
Para insertar datos, éstos deben ser cadenas JSON ( clave: valor ), podemos almacenarlos en una variable y luego, insertar la variable en la colección:> use local
> j = { name : "mongo" }
> k = { x : 3 }
> db.testData.insert( j ) db.testData.insert( k )
Cargando ficheros JSON desde el sistema de archivos
Guardamos esta cadena (string) JSON en el fichero personas.json:- {
- "People":
- [
- {
- "nombre": "Manuel",
- "apellidos": "Pérez",
- "fecha_nacimiento": "1982-03-03",
- "altura": 1.80,
- "activo": true,
- "intereses":["fútbol","tenis"],
- "tarjeta_credito": null,
- "dni":
- {
- "numero":"465464646J",
- "caducidad":"2013-10-21"
- }
- },
- {
- "nombre": "Sara",
- "apellidos": "Ruano",
- "fecha_nacimiento": "1985-12-03",
- "altura": 1.65,
- "activo": false,
- "intereses":["moda","libros","fotografía","política"],
- "tarjeta_credito": null
- }
- ]
- }
> use local
> ls()
[ "./personas.json" ]
> gente=cat("./personas.json");
> db.personas.insert(JSON.parse(gente));
> db.personas.find();
{ "_id" : ObjectId("54e1c092eda758b3eb9c5389"), "People" : [ { "nombre" : "Manuel", "apellidos" : "Pérez", "fecha_nacimiento" : "1982-03-03", "altura" : 1.8, "activo" : true, "intereses" : [ "fútbol", "tenis" ], "tarjeta_credito" : null, "dni" : { "numero" : "465464646J", "caducidad" : "2013-10-21" } }, { "nombre" : "Sara", "apellidos" : "Ruano", "fecha_nacimiento" : "1985-12-03", "altura" : 1.65, "activo" : false, "intereses" : [ "moda", "libros", "fotografía", "política" ], "tarjeta_credito" : null } ] }
>
Bibliografía
- Getting Started with MongoDB, the Official Tutorial.
- Si no quieres documentación en inglés, un recurso muy interesante es este tutorial de MongoDB en Español.
- Para programadores con experiencia en bases de datos relacionales: Comparando SQL con Mongo
- Para ver equivalencias de funciones SQL en Mongo prueba este tutorial.
No hay comentarios:
Publicar un comentario