Как отфильтровать объект AWSJSON в AWS AppSyn c? - PullRequest
0 голосов
/ 05 мая 2020

Мой APPSyn c подключен к таблице Dynamodb, и схема выглядит так:

type Query {
    getNews(date: String!): News
    listNews(filter: TableNewsFilterInput, limit: Int, nextToken: String): NewsConnection
}
input TableNewsFilterInput {
    date: TableStringFilterInput
    news: TableStringFilterInput
}

input TableStringFilterInput {
    ne: String
    eq: String
    le: String
    lt: String
    ge: String
    gt: String
    contains: AWSJSON
    notContains: String
    between: [String]
    beginsWith: String
}

Столбец новостей в таблице Dynamodb представляет собой карту и выглядит примерно так:

{
abhijit banerjee:{
ampUrlString:   https://m.freepressjournal.in/article/business/rahul-gandhi-and-abhijit-banerjee-discuss-economic-crisis-amid-coronavirus-pandemic-here-are-the-highlights-of-their-conversation/5a5c3e42-9a55-4fce-8ac3-5b4a17125aca
}
}

Мне нужно отфильтровать, используя ключевое слово, скажем, Абхиджит. Я нигде не мог найти решения. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 15 мая 2020

Вы можете использовать Query для получения данных, а затем применить фильтр. Примерно так:

    {
        "version" : "2017-02-28",
        "operation" : "Query",
        "query" : {
            "expression": "primaryKey = :primary", ## add a sort key filter if the table has it
            "expressionValues" : {
                ":primaryKey" : $util.dynamodb.toDynamoDBJson($ctx.args.primaryKey)
            }
        },
        "filter" : {
            "expression": "contains (:name, name)",
            "expressionValues" : {
                ":authors" : $util.dynamodb.toDynamoDBJson($ctx.args.name)
            }
        }
    }

Вы также можете создать индекс по колонке новостей. Добавьте в индекс только один ключ и спроецируйте все столбцы в нем. Теперь вы можете использовать запрос с этим индексом, это поможет, если вы хотите, чтобы все новости относились к одной входной строке.

Также проверьте здесь: Запрос DynamoDB со списком в AWS AppSyn c

...