es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

AWS Appsync y DynamoDB – Consulta utilizando el operador IN

Tengo una tabla en DynamoDB conectada a una API de Appsync. La tabla se ve algo así…

ID Estado Valor
0 NY 100
1 IL 0
2 TX 50

Estoy intentando usar la interfaz de usuario de Appsync para consultar la tabla usando el operador “IN”, pero parece que esta no es una opción en Appsync. Por ejemplo, podría buscar filas donde el estado sea ‘TX’ o ‘IL’. Pensaría que la consulta se vería así…

query MyQuery {
  listResults(filter: {state: {in: ["TX", "IL"]}}) {
    items {
      id
      state
      value
    }
  }
}

Sin embargo, parece que Appsync no admite el operador IN. Tengo opciones para “eq”, “gt”, “lt”, etc., pero no hay opción para el operador IN. Parece un caso de uso bastante estándar, pero estoy luchando por encontrar documentación. Si este es el caso, ¿cuáles son las posibles soluciones alternativas? He intentado usar un resolutor personalizado, pero no he podido encontrar una respuesta definitiva.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que la API de AppSync GraphQL no soporta el operador IN para filtrar en DynamoDB. Una posible solución alternativa sería usar un resolvedor personalizado para realizar el filtrado usando una operación de escaneo en DynamoDB en lugar de una operación de consulta. Alternativamente, podría considerar reestructurar sus datos de tal manera que pueda utilizar los operadores de filtrado admitidos en AppSync, como crear elementos separados para cada estado en lugar de almacenarlos en una sola fila. Es importante tener en cuenta que las operaciones de escaneo pueden ser más lentas y costosas que las operaciones de consulta, por lo que es importante sopesar los compromisos antes de implementar una solución.

Comments are closed.