---
title: "Cómo utilizar las plantillas de consulta para abstraer consultas nativas"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2215919138/C%C3%B3mo%20utilizar%20las%20plantillas%20de%20consulta%20para%20abstraer%20consultas%20nativas"
format: markdown
---
En este post se explica cómo utilizar la funcionalidad de Gestión de Plantillas de Consulta que simplifica las consultas complejas, por ejemplo, las consultas en las que hay datos anidados. Con esta funcionalidad, cuando el usuario realiza la consulta SQL que ha creado, la plataforma trabaja internamente con una consulta nativa.

Para ello, es necesario usar un perfil con rol administrador e ir al menú **Administración > Gestión de Plantillas de Consulta.**

![image](media://0bc88158-b12b-4944-bbe1-008d2090062b)

Una vez en la pantalla de Gestión de Plantillas de Consulta, pulsa "Crear":

![image](media://01ca515b-9294-481f-9664-7acbfcdf958a)


Rellena los campos de nombre y descripción, y selecciona la ontología sobre la que deseas realizar la consulta.

![image](media://6791db65-00fa-4ad2-a1d0-afe374d8069b)


En las secciones "Selector" y "Template", se muestra un ejemplo de cómo generar la plantilla de consulta. Para este ejemplo, vamos a utilizar la ontología "Restaurants".

Primero, en la sección "Selector", tienes que crear una consulta SQL con los datos que quieres consultar. En este caso, buscamos los restaurantes situados entre dos coordenadas (latitud y longitud):

<span style="color: #800080">select</span> * <span style="color: #800080">from</span> Restaurants <span style="color: #800080">where</span> lat > <span style="color: #3366ff">@x</span> <span style="color: #800080">and</span> lon < <span style="color: #3366ff">@y</span>

![image](media://66bb4d27-4b8d-48da-9938-ddbb0b5568f6)

En este caso, por ejemplo, te daría todos los restaurantes que estén a la vez al norte de la latitud @x, y al oeste de la longitud @y.

Puedes asignar cualquier nombre a las variables, pero sus valores deben identificarse siempre precedidos de una @.

Para poder usar esta consulta SQL que se ha creado, tienes que poner la consulta nativa correspondiente en la sección "Template":

<span style="color: #800080">var</span> lat = @<span style="color: #3366ff">x</span>  
<span style="color: #800080">var</span> lon = @<span style="color: #3366ff">y</span>  
<span style="color: #800080">var</span> query = <span style="color: #808000">'db.Restaurants.find({"Restaurant.address.coord.0": {"$gt": '</span>+<span style="color: #3366ff">lat</span>+<span style="color: #808000">'}, "Restaurant.address.coord.1": {"$lt":'</span>+<span style="color: #3366ff">lon</span>+<span style="color: #808000">'}})'</span>;

<span style="color: #800080">return</span> <span style="color: #3366ff">query</span>;

![image](media://fafa6b28-b50f-4000-a0ef-3e8a910b6596)


De esta forma, cuando quieras hacer una consulta con estos valores, desde la herramienta de consulta (**Herramientas > Herramienta Consultas**), copia la consulta SQL generada y añade los valores que quieras.

![image](media://8ca47860-07a6-4b5a-a3ab-72c060b93dea)