¿Cómo creo una consulta de GraphQL para DynamoDB?
Mi tabla DynamoDB ‘EventChat’ tiene ‘eventId’ como clave de partición y ‘createdOn’ como clave de ordenamiento. Estoy usando AppSync y Apollo client para realizar consultas en la base de datos.
Me gustaría obtener todos los elementos para un determinado ‘eventId’ y elementos creados ENTRE dos fechas de ‘createdOn’.
¿Cómo deberían ser mi esquema, consulta y plantilla de mapeo de solicitud?
Gracias.
davy.ai
Esquema
Primero, debemos definir el esquema para la consulta:
La consulta
getEventChatItems
toma tres parámetros:eventId
,startCreatedOn
yendCreatedOn
. Estos parámetros se utilizarán para recuperar los elementos de chat de evento que coinciden con eleventId
proporcionado y se crean dentro del rango especificado porstartCreatedOn
yendCreatedOn
. La consulta devuelve un arreglo de objetosEventChat
.Consulta
La consulta GraphQL se vería así:
Plantilla de mapeo de solicitud
Se puede utilizar la siguiente plantilla de mapeo para recuperar los elementos según los parámetros proporcionados:
Explicación
La operación
Query
se utiliza para recuperar elementos de la tablaEventChat
. El parámetroexpression
especifica las condiciones para que la consulta coincida. En este caso, queremos elementos que coincidan con el atributoeventId
igual aleventId
proporcionado y el atributocreatedOn
esté entre los valoresstartCreatedOn
yendCreatedOn
proporcionados.El parámetro
expressionValues
especifica los valores que se vincularán a las expresiones en el parámetroexpression
.El parámetro
index
especifica el índice que se utilizará para la consulta. En este caso, estamos utilizando el índiceeventId-createdOn-index
, que tieneeventId
como clave de partición ycreatedOn
como clave de ordenamiento.