Escolar Documentos
Profissional Documentos
Cultura Documentos
Sin entrar demasiado en detalles acerca de todas las posibilidades que MongoDB nos
ofrece para consultar los datos almacenados, s quisiera nombrar algunas de ellas,
para hacer notar que no estamos frente a un sistema simple de almacenamiento de
pares clave-valor.
En primer lugar, MongoDB nos permite utilizar funciones Map y Reduce escritas en
Javascript para seleccionar los atributos que nos interesan de los datos, y agregarlos
(unificarlos, simplificarlos) en 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
ms sencillo que sto.
db.posts.find({author_info._id : 4da2c0e2e999fb56bf000002})
db.posts.find({tags : MongoDB})
El hash utilizado como conjunto de condiciones que deben cumplir los documentos a
devolver puede incluir operadores de muy diversos tipos, no slo 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 condicin.
$in : Para indicar que el valor debe estar entre alguno de los proporcionados.
$or : Para indicar que se debe cumplir al menos una condicin de entre un grupo de
condiciones.
$size : Para indicar el nmero de elementos que debe haber en el array almacenado
como valor.
Y muchos, muchos ms. Los resultados se pueden agrupar, ordenar, contar, paginar,
y otras tantas operaciones comunes sin necesidad de recurrir al farragoso Map /
Reduce. Y siempre que los atributos consultados tengan definidos un ndice, la
velocidad de las consultas es espectacular.
Bueno, por ahora creo que es suficiente como para que sirva de introduccin a este
fabuloso motor de base de datos. En futuros artculos procurar hablaros de sus otras
caractersticas a la hora de escalarlo para su uso en mltiples mquinas, as como
otros mecanismos interesantes de MongoDB como los ndices geoespaciales. Si
queris experimentar con l, y trabajis habitualmente con Ruby, tal vez os interese
echar un vistazo a un Object Document Mapper para este lenguaje que escrib para
un proyecto, y que facilita la interaccin con el motor desde tus modelos:
MongoODM.