如何同时使用“_and”和“_or”编写查询

问题描述 投票:0回答:1

我正在尝试编写一个查询,该查询采用开始日期和结束日期来过滤出特定日期范围内的事件列表。同时,我还想过滤包含用户提供的任何内容的字段(在我的示例代码中,我选择了“标题”或“位置”等字段)。我的应用程序是一个事件日历,我希望此查询与筛选器窗格组件一起使用,其中筛选器窗格中的每个输入都可用于动态获取筛选后的数据列表。

query MyQuery {
  events(where: {
    _and: [
      {
        _or: [
          { title: {_ilike: "%test title%"} },
          { location: {_ilike: "%test location%"} }
        ]
      },
      { start_date_time_utc: {_gte: "2024-01-08T04:05:06.605+00:00"} },
      { end_date_time_utc: {_lte: "2024-02-28T21:52:09+00:00"}}
    ]
  }
    
  ) {
    id
    title
    start_date_time_utc
  }
}

我的问题是,如果我只使用“_and”运算符或“_or”运算符,上述查询工作正常,但如果我尝试将它们一起使用,我什么也得不到。我尝试了几种不同的方法,但感觉我在语法上遗漏了一些东西。 我是 GraphQL 和 Hasura 的新手,所以它可能很简单(我希望它是TBH),但我还没有看到任何关于如何一起使用它们的文档。

graphql hasura
1个回答
0
投票

我无权访问架构,但类似的东西应该可以工作

query MyQuery {
  events(
    where: {
      _or: [
        { title: { _ilike: "%test title%" } }
        { location: { _ilike: "%test location%" } }
      ]
      start_date_time_utc: { _gte: "2024-01-08T04:05:06.605+00:00" }
      end_date_time_utc: { _lte: "2024-02-28T21:52:09+00:00" }
    }
  ) {
    id
    title
    start_date_time_utc
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.