如何在graphql where语句中添加OR条件?

时间:2019-08-23 03:14:59

标签: graphql where-clause strapi

我无法通过graphql游乐场在Strapi中获得WHERE语句,该语句在'OR'条件下工作。

我想返回“标题”或“内容”字段包含search_text的所有结果。

我尝试了以下方法:

articles(where: { 
or: [
  {"title_contains" : "search_text"},
  {"content_contains" : "search_text"}
 ]
}) {
title
content
}

但返回错误。

错误:“您的过滤器包含模型定义中未出现的字段“或”,也不存在关系。

一些有效的语句(但不是我想要的):

where: { "title_contains" : "sometext" }

有效,但表现为“ AND”

where: { 
"title_contains" : "search_text", 
"content_contains" : "search_text"
}

2 个答案:

答案 0 :(得分:2)

截止到7月,可以这样做

(where: { _or: [{ someField: "1" }, { someField2: "2" }] })

答案 1 :(得分:0)

这里的解决方法是创建一个自定义查询并进行一个满足您需求的自定义数据库查询。

以下是如何创建自定义GraphQL查询的方法: https://strapi.io/documentation/3.0.0-beta.x/guides/graphql.html#example-2

要访问数据模型,您将必须使用strapi.models.article(对于Article模型),并且在此变量内,您将访问本机Mongoose或Bookshelf函数。这样您就可以使用OR进行查询