首页 > 解决方案 > 在 GraphQL 查询“where”对象中使用“or”

问题描述

我有一个 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"
    }
}

在上面的示例中,条件表明bodytitle字段都应包含术语lorem。这行得通。但是,这是一个 AND 操作。它只检索trueon isPublished、 contains loreminbody和 contains loremin的文档title

我想要的是true在 上isPublished,并且包含lorem在其中一个body,或title,或两者中的文档。

有没有办法做到这一点?

可以使用以下 HTTP 标头在https://dev.shandillia.com/graphql上运行查询:

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

标签: graphqlstrapi

解决方案


推荐阅读