我有
Referral
内容类型,其中有 excludedClient
字段,它是一个链接(许多引用),它由 Client
| 组成。 Client Group
内容类型。
Client
和 Client Group
内容类型都有 shortName
字段,它是一个字符串,我希望获得排除客户端或客户端组名称短名称的引用。
fragment ReferralClientFields on Client {
shortName
}
fragment ReferralClientGroupFields on ClientGroup {
shortName
}
query Referral {
# add your query
referralCollection(where: {
excludeClient: {
shortName_in: ["JED"]
}
}) {
total
items {
title
style
context
clientCollection(limit: 15) {
items {
...ReferralClientFields
...ReferralClientGroupFields
}
}
excludeClientCollection(limit: 30) {
items {
...ReferralClientFields
...ReferralClientGroupFields
}
}
}
}
}
JED
JED
客户组是从推荐中排除的客户的一部分,referral1
,但上述过滤器未返回,referral1
,即使有一个被排除的客户组的简称为 JED
。注意:如果我将
excludedClient
字段设置为只有一种内容类型,即 Client Group
,则上述查询将返回引荐。
那么,内容丰富的 GraphQL 不支持对具有多种内容类型的链接字段进行过滤吗?从文档中它只提到了具有单一内容类型的
Link
字段。 https://www.contentful.com/developers/docs/references/graphql/#/reference/collection-filters/sys-filters
对于具有单个 linkContentType 验证的链接字段。过滤 深度仅限于一层关系。
您需要将
where
子句移至查询的 excludeClient
部分
query Referral {
referralCollection(limit: 10) {
total
items {
title
style
context
clientCollection(limit: 15) {
items {
...ReferralClientFields
...ReferralClientGroupFields
}
}
excludeClientCollection(limit: 30, where: {
shortName_in: ["JED"]
}) {
items {
...ReferralClientFields
...ReferralClientGroupFields
}
}
}
}
}