AppSync + DynamoDB: запрос с фильтром не возвращает все допустимые элементы - PullRequest
0 голосов
/ 11 июля 2019

У меня API Appsync для подключения к таблице Dynamo.

Динамо таблица содержит данные: («id» - это ключ, а «year» - это ключ сортировки)

|--------------|-------------|-------------|-------------|-------------| 
|      id      |     year    |     name    |    class    |   subject   |    
|--------------|-------------|-------------|-------------|-------------|
|   001        |    2017     |     Tom     |     E1      |     Math    |
|--------------|-------------|-------------|-------------|-------------|
|   002        |    2017     |     Mary    |     E1      |     Math    |
|--------------|-------------|-------------|-------------|-------------|
|   003        |    2017     |     Peter   |     E1      |     Math    |
|--------------|-------------|-------------|-------------|-------------|

схема

type Query {
    listStudents(filter: TableStudentFilterInput, limit: Int, nextToken: String): StudentConnection
}

type StudentConnection {
    items: [Student]
    nextToken: String
}

input TableStudentFilterInput {
    id: TableStringFilterInput
    year: TableStringFilterInput
    name: TableStringFilterInput
    class: TableStringFilterInput
    subject: TableStringFilterInput
}

type Student {
    id: String!
    year: String!
    name: String
    class: String
    subject: String
}

Запрос:

query listStudentByYear {
  listStudents (filter:{year:{eq:"2017"}}) {
    items {
      id
      year
      name
      class
      subject
    }
  }
}

Проблема: запрос возвращает 001 и 002, но не 003.

Когда я пытался обновить «id» с 003 до 004, запрос корректно возвращает 001, 002, 004.

Эта странная проблема возникает довольно часто, через некоторое время запрос AppSync возвращает неполный результат (некоторые отсутствуют).

Любое предложение приветствуется.

...