Ваш запрос возвращает только один узел, а фильтры предназначены только для фильтрации узлов (а не данных внутри узлов).
Похоже, что вы пытаетесь запросить только content
с activityMeta.contentType === "iframe-game"
.
Вы можете разбить свой JSON на отдельные файлы?Если да, то вы можете фактически создать разные типы узлов с помощью gatsby-transformer-json
.
При условии, что структура папок:
src/
data/
category.json
content.json
contentGroup.json
menu.json
, вы можете создать разные типы узлов для каждого файла, например так:
plugins: [
{
resolve: `gatsby-transformer-json`,
options: {
typeName: ({ node }) => {
return node.relativePath.split('.').slice(0, -1).join('.')
}
}
},
...
]
, и это позволит вам делать отдельные запросы, такие как allCategory
, allContent
, allContentGropup
, allMenu
.
Как только вы окажетесь в этой точке, вы легко отфильтруете запрос allContent
, чтобы он совпадал только с узлами, если node.activityMeta.contentType === "iframe-game"
со следующим запросом
query MyQuery {
allContent(filter: {activityMeta: {contentType: {eq: "iframe-game"}}}) {
nodes {
name
activityMeta {
contentType
contentLink
inScene
backgroundImages {
path
}
}
type
link
description
content {
score
gameOverTitle
gameOverProgress
}
}
}
}