2. ¿Qué es MongoDb?
MongoDB es una bases de datos NoSQL
cuya particularidad es que intenta unir las
ventajas de los almacenes clave-valor y
de las bases de datos relacionales clásicas
(RBDMS).
Esta desarrollada en C++
3. Terminología básica
En MongoDB, cada registro o conjunto de datos
se denomina documento, que se pueden agrupar
en colecciones, las cuales son el equivalente a las
tablas en una base de datos relacional (sólo que
las colecciones pueden almacenar documentos
con muy diferentes formatos, en lugar de estar
sometidos a un esquema fijo).
Se pueden crear índices para algunos atributos
de los documentos, de modo que se mantendrá
una estructura interna eficiente para el acceso a
la información por los contenidos de estos
atributos.
4. ¿Cómo funciona?
Para almacenar los documentos, se utiliza una
serialización binaria de JSON, llamada BSON, que
es una lista ordenada de elementos simples.
El núcleo de la base de datos es capaz de
interpretar su contenido, de modo que lo que a
simple vista parece un contenido binario,
realmente es un documento que contiene varios
elementos.
Estos datos están limitados a un tamaño máximo
de 4 MB
Para tamaños superiores se requiere del uso de
GridFS.
5. En el área funcional, MongoDB permite la
realización de operaciones de modificación
de documentos enviando solamente el
diferencial de datos, esto es, la
modificación del mismo se realiza dentro
del servidor, no en la parte cliente.
Las escrituras a disco no son simultáneas
a la realización de la operación, sino que
difieren unos 2 segundos, en los que se
puede modificar varias veces el registro
antes de ser persistido.
¿Cómo funciona?
6. En el caso de incrementar el tamaño del
documento y de que los nuevos datos no
se puedan almacenar junto los antiguos,
se mueve el documento entero hasta un
área vacía del archivo de datos (evitando
la fragmentación del mismo).
¿Cómo funciona?
7. ¿Qué lo diferencia de otros?
Un aspecto relevante de MongoDB es que
soporta consultas dinámicas ,pudiendo
formular sobre cualquier valor de los
documentos y no solamente en los
indexados.
También dispone de MapReduce, por lo
que las diferencias más visibles entre
ambas bases de datos son la interfaz
entre estas y el desarrollador.
10. Consulta De Datos
MongoDB permite utilizar funciones Map y
Reduce que estan escritas en Javascript para
seleccionar los atributos que nos interesan de
los datos, y agregarlos de la manera
deseada, respectivamente.
Esto es algo habitual en muchos sistemas
NoSQL, y en algunos casos es incluso la
única forma posible de consultar datos. Claro
está que muchas veces necesitamos algo
bastante más sencillo que esto
MongoDB se pueden utilizar consultas al
valor de un atributo específico.
11. Por ejemplo, podemos capturar el post
que tiene un determinado título:
db.posts.find({„title‟ : „Una
introducción a MongoDB‟})
El valor a consultar puede estar anidado
en un tipo de datos más completo en el
atributo del documento.
Consulta De Datos
12. Se utiliza un punto como separador de los
nombres de las claves de los diferentes
hashes que hay que recorrer hasta llegar al
valor deseado.
◦ Por ejemplo, la siguiente consulta devolvería todos
los posts escritos por un determinado autor:
db.posts.find({„author_info._id‟ :
„4da2c0e2e999fb56bf000002‟})
Y esta otra los posts etiquetados con
MongoDB:
db.posts.find({„tags‟ : „MongoDB‟})
Consulta De Datos
13. El HASH
Utilizado como conjunto de condiciones que deben cumplir los
documentos a devolver puede incluir operadores de muy diversos
tipos, no sólo comparadores del valor absoluto buscado. Algunos
de ellos son:
•$all : Para indicar que el array almacenado como valor del
atributo debe tener los mismos elementos que el
proporcionado en la condición.
•$exists : Para comprobar que el atributo existe en el
documento.
•$mod : Para comprobar el resto de una división del valor del
atributo por un número.
•$ne : Para indicar que el valor no puede ser el proporcionado.
•$in : Para indicar que el valor debe estar entre alguno de los
proporcionados.
•$nin : Contrario de $in.