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

Tom*_*y K 6 where-clause graphql strapi

我无法通过 graphql 操场在 Strapi 中使用“或”条件获得 WHERE 语句。

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

我尝试了以下方法:

articles(where: { 
or: [
  {"title_contains" : "search_text"},
  {"content_contains" : "search_text"}
 ]
}) {
title
content
}
Run Code Online (Sandbox Code Playgroud)

但返回错误。

错误:“您的过滤器包含一个字段“或”,该字段既没有出现在您的模型定义中,也没有出现在关系中。

一些有效的陈述(但不是我所追求的):

where: { "title_contains" : "sometext" }
Run Code Online (Sandbox Code Playgroud)

工作,但表现为“与”

where: { 
"title_contains" : "search_text", 
"content_contains" : "search_text"
}
Run Code Online (Sandbox Code Playgroud)

小智 6

截至 7 月,可以这样做

(where: { _or: [{ someField: "1" }, { someField2: "2" }] })
Run Code Online (Sandbox Code Playgroud)


Jim*_*RIE 1

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

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

要访问数据模型,您必须使用strapi.models.article(对于文章模型),并且在该变量内,您将访问本机 Mongoose 或 Bookshelf 函数。所以你将能够使用 OR 进行查询