aws appsync объединяет операторов фильтров

Возможно ли в AWS appsync / ampify объединить операторы фильтров, например:

const filterInput = {
        or:[
          {
          and: [
                  {createdById: { eq: userID }},
                  {chatWithId: { eq: chatWithUser.id }}
                ]
          },
          {
          and:  [
                  {createdById: { eq: chatWithUser.id }},
                  {chatWithId: { eq: userID }}
                ]
          }
        ]
      }

Потому что для меня это не фильтрация / работа, как ожидалось.

1 ответ

Спасибо за дополнительную информацию. Со схемой Amplify, которая выглядит следующим образом:

type Chat @model { 
  id: ID! 
  createdAt: String 
  createdById: String 
  chatWithId: String 
  messsages: [Message] 
}

По умолчанию для хранения значений создается таблица с ключом HASH, в которой хранятся значения идентификатора, и нет способа эффективно выполнить запрос, который вы пытаетесь выполнить, используя только структуру ключей по умолчанию. В будущем у вас будет больше инструментов для управления структурой индекса таблицы @model, но пока единственный способ сделать это - через @connection.

Вот пример схемы, которая может помочь вам начать создавать API, которые могут более эффективно запрашивать эти отношения.

ChatQL React schema.graphql

Другие вопросы по тегам