Buscar en el tipo de datos de lista en dynamo db aws

Estamos utilizando dynamo db como nuestra solución de base de datos para uno de nuestros sitios. estamos almacenando datos en dynamo db según json dado a continuación.

Tenemos videos que pueden pertenecer a uno / varios géneros, por lo que hemos elegido el tipo de datos de la lista y hemos almacenado datos en ellos y hemos hecho el género como GSI (índice secundario global)

Estoy enfrentando varios problemas.

1) Cuando defino género como índice, aws proporciona solo tres tipos de datos (cadena, binario, número), lo que no nos permite almacenar datos de tipo de lista. Da un error inesperado del tipo de datos.

2) Si no lo defino como índice, no se me permite obtener los datos. DynamoDB solicita una clave hash, que no es posible en mi caso, ya que estoy buscando una lista que no debería depender de una clave hash (clave principal).

{
  "description": "********",
  "genre": [
    "Kids",
    "Documentary"
  ],
  "language": "******",
  "status": "0",
  "thumb_url": "******",
  "title": "******",
  "uploaded_by": "****** ",
  "url": "******",
  "video_id": 1330051052
}

Código para recuperar datos

$DynamoDbClient = AWS::get('DynamoDb');
        $result = $DynamoDbClient->query(array(
            'TableName' => 'videos',
            'IndexName' => 'genre-index',
            'AttributesToGet' => array('video_id', 'language', 'description'),
            'KeyConditions' => array(
                // Key attribute
                // This is non-key attribute
                'genre' => array(
                    'ComparisonOperator' => 'EQ',
                    'AttributeValueList' => array(
                        array("S" => "Kids"),
                    )
                ),
            ),
        ));

En el código anterior, estoy buscando videos en el género Kids. pero vuelve en blanco y da error si no declaro el género como índice. El mismo video puede pertenecer a múltiples géneros.

Entonces, ¿hay alguna forma de que pueda buscar dentro de una lista O NO estoy usando la API de la manera correcta? La ayuda siempre es apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta