MongoDB es un gestor de bases de datos NoSQL, por lo que a diferencia de las bases de datos relacionales, no utiliza el lenguaje SQL. MongoDB dispone de un lenguaje de consulta de información propio: MongoDB Query Language (MQL).
Vamos a revisar muy brevemente las caractarerísticas de cada uno de ellos: SQL y MQL.
El lenguaje SQL permite construir sentencias para hacer todo tipo de operaciones sobre bases de datos relacionales: Crear/eliminar una BBDD, crear/modificar/eliminar tablas/indices/vistas, consultar/modificar/agregar/eliminar filas de tablas, etc.
Esto es debido a que SQL incluye: un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de control de datos.
Algunos ejemplos de sentencias SQL :
- Crear una tabla: CREATE TABLE jobs(
ID int,
country varchar(255),
sector varchar(255),
company varchar(255),
job_description varchar(255)
);
- Consultar una tabla: SELECT company, country,source from jobs where sector="finance"
Es relativamente fácil desarrollar un programa sencillo, por ejemplo en python, para conectarse con una BBDD relacional y ejecutar sentencias SQL de cualquier tipo.
Sin embargo en MongoDB no tenemos esta flexibilidad, ya que el lenguaje MQL no se basa en sentencias, sino en comandos/instrucciones específicas para cada tipo de operación.
Por ejemplo una consulta en MQL parecida a la anterior en SQL sería:
db.jobs.find(
{"sector" : "finance"},
{"company":1,"country":1,"source":1}
)
En la instrucción anterior db es la variable de la conexión a MongoDB, jobs es la colección sobre la que queremos trabajar y find es el comando especifico para la operación que queremos realizar, en este caso una consulta con la condición sector="finance", y sólo queremos mostrar los campos company, country y source.
Para los que estamos acostumbrados a trabajar con SQL no es fácil pasar de éste a MQL, ya que las estructuras son totalmente diferentes.
Sin embargo hay una serie de herramientas que nos permiten convertir secuencias SQL en MQL:
- Tenemos por ejemplo la página site24x7 que acepta sentencias SQL y genera el comando MQL equivalente.
- Adicionalmente algunas aplicaciones de administración de MongoDB incluyen esta facilidad, por ejemplo NoSQLBooster.
- La documentación en linea de MongoDB incluye una página con mapeo SQL a MQL: docs.mongodb.com
- La herramienta MongoDB Connector for BI permite utilizar sentencias SQL para extraer información de una BBDD MongoDB y alimentar herramientas BI como Tableau,Qlik, MicroStrategy, etc.
No hay comentarios:
Publicar un comentario