Использование "или" внутри объекта "where" запроса GraphQL - PullRequest
1 голос
/ 14 июля 2020

У меня есть запрос GraphQL (работающий на бэкэнде Strapi), который выглядит следующим образом:

query posts($where: JSON!) {
  posts(
    sort: "createdAt:DESC",
    where: $where
  ) {
    id
    title
  }
  postsConnection(where: $where) {
    aggregate{
      count
    }
  }
}

Он извлекает набор документов, которые выполняют условие, переданное ему через объект $where.

{
    "where": {
        "isPublished": true,
        "body_contains": "lorem",
        "title_contains": "lorem"
    }
}

В приведенном выше примере условие гласит, что оба поля body и title должны содержать термин lorem. Это работает. Однако это операция И. Он извлекает только документы, которые true на isPublished, содержат lorem в body и содержат lorem в title.

Мне нужны документы, true на isPublished и содержат lorem либо в body, либо title, либо в обоих.

Есть ли способ выполнить sh это?

Запрос может быть запустить на https://dev.schandillia.com/graphql, используя следующие заголовки HTTP:

{
  "Authorization": "bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVkOWVlNDBhNDYyMGNiMzBiZjdhZGVlMyIsImlzQWRtaW4iOnRydWUsImlhdCI6MTU5MzE3MzA1MSwiZXhwIjoxNTk1NzY1MDUxfQ.42yWHgpXlkPaeNqGNDyPKDAhbtGRz_MYfZrlZP2lF6U"
}
...