Filtrar información
Cuando se trabaja con entidades que contienen muchos registros, es común que no se necesite toda la información disponible. Para obtener solo los datos relevantes y mejorar el rendimiento de las consultas, puedes aplicar filtros usando el parámetro $filter
.
❓ ¿Cómo funciona $filter
?
El parámetro $filter
permite aplicar condiciones sobre los campos de una entidad. Se añade al final de la URL de consulta y utiliza operadores lógicos para comparar valores.
La sintaxis básica es:
$filter=Columna operador Valor
⚙️ Operadores disponibles
Operador | Significado |
---|---|
eq | Igual a |
ne | Diferente a |
gt | Mayor que |
ge | Mayor o igual |
lt | Menor que |
le | Menor o igual |
and | Y |
or | O |
🧪 Ejemplos prácticos
Filtrar productos
Consultar los productos cuyo nombre sea igual a LECHE
:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Nombre eq 'LECHE'
Consultar los productos cuyo nombre sea diferente a LECHE
:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Nombre ne 'LECHE'
Consultar los productos cuyo precio de venta sea mayor a 10000
:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 gt 10000
Consultar los productos cuyo precio de venta sea mayor o igual a 10000
:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 ge 10000
Consultar los productos cuyo precio de venta sea menor a 10000
:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 lt 10000
Consultar los productos cuyo precio de venta sea menor o igual a 10000
:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 le 10000
Consultar los productos cuyo precio de venta sea mayor a 10000
y nombre igual a LECHE
:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 gt 10000 and Nombre eq 'LECHE'
Filtrar clientes
Consultar los clientes cuyo estado civil sea SOLTERO
:
GET /v1/OrganizacionOData.svc/Cliente?$format=json&$filter=EstadoCivil eq 'Soltero'
Consultar los clientes cuya edad sea mayor a 30
:
GET /v1/OrganizacionOData.svc/Cliente?$format=json&$filter=Edad gt 30
Consultar los clientes cuyo país sea CO
y ciudad sea MEDELLÍN
:
GET /v1/OrganizacionOData.svc/Cliente?$format=json&$filter=Pais eq 'CO' and Ciudad eq '01005'
Filtrar compras
Consultar las compras con estado ANULADO
:
GET /v1/OrganizacionOData.svc/Compra?$format=json&$filter=Estado eq 'ANULADO'
Consultar las compras con total mayor a 500000
:
GET /v1/OrganizacionOData.svc/Compra?$format=json&$filter=Total gt 500000
Consultar las compras realizadas después del 1 de enero de 2025:
GET /v1/OrganizacionOData.svc/Compra?$format=json&$filter=FechaIngreso gt datetime'2025-01-01T00:00:00'
✅ Recomendaciones
- Usa
$filter
junto con$select
para obtener solo los datos que necesitas. - Revisa la metadata para conocer los nombres exactos de las columnas disponibles.
- Combina filtros con
$orderby
y$top
para mejorar aún más el rendimiento.