MongoDB es una base de datos, no relacional del tipo llamada NoSQL termino acuñado en 2009 para englobar las (nuevas) bases de datos pensadas para la web.
Pensadas para la web de la forma que tienen una forma de trabajar muy distintas a las tablas tradicionales. Tanto que prescinden de las tablas y hablan directamente de documentos.
Quien las usa?
Google las usa, Facebook, las usa, el Ney York times (mongoDB), foursquare (mongoDB). Son servicios que tienen una cantidad de inserts en sus data store impresionantes, además de necesidades de escalar de manera horizontal contantemente.
MongoDB, nacida en la nube.
La historia de MongoDB es más bien corta pero interesante de recordar, nació de un proyecto mucho más ambicioso de la empresa 10gen, cuando esta estaba trabajando en un software platform-as-a-service compuesto de un servidor de aplicaciones y una base de datos. Era una especie de AppEngine de Google, la idea detrás del proyecto era una infraestructura que escale automáticamente en requerimientos tanto de software como de hardware. Buscaban que los desarrolladores se preocupen solamente de su aplicación y no de los pormenores de la arquitectura, lo mismo que AppEngine.
Al final lo más interesante que nos dejó este proyecto fue la base de datos, que luego se pasó a llamar MongoDB.
Ahora que sabemos cómo empezó todo, entendemos porque MongoDB tenia que escalar tan bien. Esto fue así porque nació como una plataforma para ser utilizada en una granja de servidores y no una simple base de datos que corre en una sola máquina.
Funcionalidades
Una base de datos está definida en gran medida por su modelo de datos. En el caso de Mongo es orientada a documentos. Mejor poner un ejemplo
Orientada a documentos
{ _id: ObjectID('4bd9e8e17cefd66665961bb'),
title: 'Omniwired Blog',
url: 'http://omniwired.com/databases.txt',
author: 'juan',
vote_count: 10,
tags: ['databases', 'mongodb', 'web'],
image: {
url: 'http://omniwired.com/db.jpg',
type: 'jpg',
size: 15435,
data: "Binary"
},
comments: [
{ user: 'momokosan',
text: 'que buen articulo. nya'
},
{ user: 'blog',
text: 'Otro articulo bueno esta en http://cosas.com/db/db.txt'
}
]
}
Parte 2. Ad Hoc, soon

