La directiva @key y queryField en Amplify AWS

Cuando empiezas a trabajar con Amplify y GraphQL te vas dando cuenta que hay muchas cosas que dabas por hechas que no son cómo esperabas, más aún si vienes del mundo de las bases de datos relacionales, donde todo tiene bastante sentido y el mundo es bastante plano.

En el mundo de GraphQL y exclusivamente de la mano de Amplify con bases de datos DynamoDB todo cambia bastante, y aquí vamos a intentar entender un factor clave al trabajar con este tipo de bases de datos, la directiva @key y queryField en Amplify AWS.

Imaginemos que tenemos una tabla Posts en una base de datos SQL, ya sabemos que si hacemos una consulta SELECT * FROM posts WHERE user_id = 10 eso retornará todos los registros con user_id = 10, que es el comportamiento esperado.

Ahora ponte en el caso que en lugar de estar trabajando con bases de datos SQL estás trabajando con DynamoDB haciendo uso de bases de datos NoSQL, pues bien, si aquí hacemos lo siguiente y el primer registro con user_id está en la posición 20 el resultado será un array vacío:


¿Por qué? Muy simple, DynamoDB buscará del 0 al 10 un registro con user_id = 10, como no existe, no retornará datos.

Generar índices personalizados en DynamoDB

La solución para generar consultas óptimas sin tener que acceder rápidamente a operaciones de tipo Scan pasa por utilizar la directiva @key de los modelos de datos de Amplify, pero para que no se haga tan pesado mejor te lo explico en un rápido vídeo 🙂

 

SUSCRÍBETE AHORA Y ACCEDE A TODO EL MATERIAL DE INMEDIATO, CURSOS Y TIPS AND TRICKS
Cursosdesarrolloweb ©. Todos los derechos reservados.

Login

Create an Account Back to login/register