Saltar al contenido principal

Búsqueda

Parámetros de consulta (filtros)

Los parámetros de consulta son pares clave-valor que se agregan a la URL de la solicitud.

Estos parámetros se componen del tipo clave-valor, separados por un signo de igual (=), y se pueden agregar a la URL de la solicitud para filtrar los resultados. En donde la clave es el campo por el que se desea filtrar y el valor es el contenido que se desea filtrar. Si se tiene más de un parámetro de consulta estos van unidos por el signo &.

GET /api/students?email="student-1@mail.com"&years.year="6e1b56500000000000000000"

Para casos que se requiera filtrar por un campo específico que se encuentre anidado, se puede hacer uso de un punto (.) para acceder a los campos anidados.

GET /api/students?field.nestedField="{value}"

Esto permite filtrar los resultados en base a los campos anidados de un objeto o un arreglo de objetos.

Estructura estudiantes para ejemplos de filtros.

Sintaxis filtro

// Filtrar por _id
GET /api/students?_id="60bc56500000000000000000"

// Filtrar estudiantes estén dentro del año
GET /api/students?years.year="6e1b56500000000000000000"

// Filtrar los estudiantes que estén inscritos
GET /api/students?years.enrolled=true

Tambien puedes filtrar por varios campos a la vez:

// Filtrar estudiantes por año y que estén inscritos
GET /api/students?years.year="6e1b56500000000000000000"&years.enrolled=true
Ejemplos de filtros sobre el campo years en un estudiante.
# Filtrar estudiantes por año
GET /api/students?years.year="6e1b56500000000000000000"

# Filtrar estudiantes que estén inscritos
GET /api/students?years.enrolled=true

# Filtrar estudiantes que estén registrados y en un grupo específico
GET /api/students?years.registered=true&years.group="6e1b56500000000000000000"

# Filtrar estudiantes por año y que estén inscritos
GET /api/students?years.year="6e1b56500000000000000000"&years.enrolled=true

Filtro a varios niveles

Esto es útil cuando necesitas buscar registros en base a los campos de un objeto anidado o un arreglo de objetos.

Sintaxis filtro a varios niveles

GET /api/students?addresses.name="Av. Napo"
GET /api/students?emergency.contacts.phones.mobile="+593999999999"

Ejemplos uso filtro a varios niveles

El filtrado a varios niveles permite buscar registros en base a los campos de un objeto anidado. Por ejemplo, para buscar estudiantes cuya dirección contenga la palabra clave "Av. Napo", puedes hacer lo siguiente:

La API devolverá solo los estudiantes cuya dirección coincida con 'Av. Napo'
GET /api/students?addresses.name="Av. Napo"
--------------------------------------------
{
"response": [
{
"_id": "60bc56500000000000000000",
"user": {
"_id": "61bc56500000000000000000",
"name": "John"
...
},
"addresses": [
{
"name": "Av. Napo",
"city": "Quito"
}
]
...
},
{
"_id": "60bc56500000000000000001",
"user": {
"_id": "61bc56500000000000000001",
"name": "Jane"
...
},
"addresses": [
{
"name": "Av. Napo",
"city": "Quito"
}
]
...
}
],
"errors": []
}