-
Notifications
You must be signed in to change notification settings - Fork 1
Bi Queries
Dentro de este repositorio se encuentra el proyecto de bi-queries.
Para configurar y ejecutar el micro-servicio seguir los pasos de: README.md bi-queries
NOTA: La variable de entorno utilizada (MONGO_HOST) la podemos configurar en el archivo index.ts. Por ejemplo, para la base local agregamos:
const MONGO_HOST = process.env.MONGO_HOST || 'mongodb://localhost:27017/andes?authSource=admin';
Una query tiene el siguiente formato:
{
"_id" : "5e7d2fb18fe0e0cde9ed6044",
"nombre" : "nombre-query",
"coleccion" : "nombre_coleccion-bd",
"query" : [
{
"!match" : {
"paciente.id" : "#paciente"
}
},
{
"!project" : {
"paciente_nombre" : "$paciente.nombre",
"paciente_apellido" : "$paciente.apellido",
"paciente_documento" : "$paciente.documento"
}
}
],
"argumentos" : [
{
"key" : "paciente",
"tipo" : "string",
"required" : true,
}
],
"mapping" : []
}
La query tiene que ser un aggregate, pero por una limitación de mongo los operadores del pipeline deben ser guardados con ! y no con el signo $.
Puede recibir argumentos, e insertarlos en el aggregate. Por ejemplo:
"argumentos" : [
{
"key" : "desde",
"label" : "Desde",
"tipo" : "date",
"required" : true
},
{
"key" : "hasta",
"label" : "Hasta",
"tipo" : "date",
"required" : true
}
]
Las key “desde” y “hasta” luego son reemplazadas en el pipeline en cada una de sus ocurrencias que aparecen antecedidas por el prefijo “#”.
Las queries también se pueden usar para exportar los datos que se obtienen a otra base. Se debe sumar una propiedad más llamada export, con las credenciales para conectarse a la base a la que se va a exportar, la tabla destino y el adapter. Por ejemplo:
{
"export" : {
"adapter" : "sql-server",
"table" : "checkouts",
"deleteColumnKey" : "_id",
"config" : {
"user" : "user-db",
"password" : "password",
"server" : "184.16.1.121",
"database" : "Andes"
}
}
Todas las rutas disponibles se encuentran en index.ts. Ejemplo de ruta para ejecutar una consulta, que se encuentra en la colección de queries.
-
Desde MS:
localhost:3000/queries/:id/csv
: -
Desde api de Andes: La API funciona como "proxy" entre al microservicio y redirecciona cada petición agregando “bi” a la ruta del microservicio. Si la api corre en localhost, con puerto 3002. GET a
localhost:3002/api/bi/csv
.
Reemplazando :id por el nombre de la query a utilizar.