Contenido del curso
Gestión de modelos en el backend con el ORM Diesel
- 2

Qué es un ORM y por qué usar Diesel
02:55 min - 3

Errores Comunes al Instalar y Usar Diesel en Rust
00:31 min - 4

Instala Diesel ORM en tu proyecto Rust
05:16 min - 5

Modelo Post con Diesel y PostgreSQL
14:22 min - 6

Cómo insertar datos en Diesel con Rust
07:55 min - 7

Queries SELECT con filtros en Diesel
Viendo ahora - 8

Cómo editar registros con Diesel en Rust
04:40 min - 9

Borrar registros en Diesel con filtros
03:01 min
Actix web framework (controlador)
Tera templates (vistas)
Despliegue del proyecto
Continúa tu aprendizaje
Queries SELECT con filtros en Diesel
Resumen
Leer registros desde una base de datos en Rust con Diesel te abre la puerta a construir páginas dinámicas, filtrar contenido y mostrar exactamente lo que tu aplicación necesita. Aquí aprendes a ejecutar queries de lectura con límites, columnas específicas, ordenamientos y filtros, todo aplicado a un caso real de blog posts.
¿Cómo se hace un SELECT básico en Diesel?
La forma más directa de leer datos es traer todos los registros de una tabla, sin filtros ni límites. Eso te devuelve la lista completa de posts almacenados.
Cuando ejecutas una query sin la cláusula limit, Diesel responde con todos los blog posts disponibles. En el ejemplo de la clase, sin límites aparecen tres posts; con limit(1) solo regresa uno. Esa diferencia define cuándo necesitas paginación o cuándo solo te interesa un registro puntual.
¿Qué hace
limiten una query de Diesel? Restringe la cantidad de filas que devuelve la base de datos. Si poneslimit(1), recibes únicamente el primer registro que cumpla con tu query.
¿Cómo traer solo columnas específicas?
A veces no necesitas todo el registro, solo un par de campos. Para eso, en lugar de hacer un SELECT *, le pides a Diesel columnas puntuales como title y body.
El truco está en crear una nueva struct en tus modelos, por ejemplo PostSimplificado, con solo los campos que vas a leer. Luego, en la query, defines la tupla (id, title) con el tipo simplificado y lo importas. Puede parecer redundante crear una estructura por cada variación, pero te da plantillas reutilizables en distintas partes de tu aplicación sin preocuparte por compatibilidad de tipos. [3:00]
¿Cómo ordenar y filtrar resultados con Diesel?
Ordenar y filtrar son dos operaciones que vas a usar constantemente cuando construyas listados de contenido o vistas de detalle.
¿Cómo ordenar registros por ID ascendente o descendente?
Para mostrar el post más reciente o el más antiguo, agregas order antes o después del limit. Con order(id) recibes el orden ascendente; con order(id.desc()) obtienes el descendente, ideal para traer el último post publicado. [3:50]
order(id): ordena de menor a mayor.order(id.desc()): ordena de mayor a menor.- Combinado con
limit(1): te da el registro más nuevo o más antiguo según la dirección.
Esta combinación es útil cuando tu blog necesita una sección de latest post o un destacado en home.
¿Cómo filtrar con WHERE en Diesel?
Para traer un registro puntual, usas filter junto con un comparador. La sintaxis es .filter(id.eq(2)) para buscar por ID, o .filter(slug.eq("primer-post")) para buscar por slug.
¿Qué es el
slugen un blog post? Es una cadena de texto única y legible que identifica un post en la URL, como primer-post. Te sirve para hacer queries más amigables que un ID numérico.
El método eq significa equal y compara el campo con el valor que pasas. Puedes encadenar varios filtros, mezclarlos con order y limit, y armar queries tan específicas como necesites.
¿Cómo hacer debugging de queries en Diesel?
Ver la query SQL real que Diesel está ejecutando te ahorra horas de adivinanza cuando algo no responde como esperabas.
Junto al queryable, agregas debug en tu struct. Eso habilita el formateo con {:?} (dos puntos y signo de interrogación) en los println!, así puedes imprimir el contenido completo del post y ver exactamente qué datos te trae cada query. [2:30]
- Query sin límites: imprime todos los posts con sus IDs.
- Query con límites: imprime solo el primer post.
- Query con columnas específicas: imprime el post simplificado con
titleybody.
Con este flujo de trabajo identificas rápido si la query trae más datos de los necesarios o si el filtro no está aplicando.
¿Por qué usar structs simplificadas para cada query?
Crear una struct distinta por cada variación de query parece trabajo extra, pero te da control absoluto sobre los tipos que circulan en tu aplicación.
Cada plantilla queda lista para reutilizarse en endpoints, vistas o servicios distintos. No tienes que validar manualmente si los campos coinciden, porque el compilador de Rust lo hace por ti. Esa seguridad de tipos es la razón por la que muchos eligen Diesel sobre clientes SQL más permisivos.
Si ya estás aplicando estas queries en tu propio proyecto, cuéntame en los comentarios qué tipo de filtros estás construyendo y qué retos te han surgido al modelar tus structs.