In building a query for tree-like collections, each of the children
need to repeat their parentsâ fields in order to get the same data. Assuming all the children have the same schema as their parent, is there a way to put that into GraphQL as a âsubqueryâ or similar?
Right now it looks like:
query MyQuery {
allMenus(filter: { parent: { exists: "*" } }) {
id
menuId
json
plaintext
position
title
urlOverride
reference {
... on PressReleaseRecord {
id
}
... on PostRecord {
id
}
... on PageRecord {
id
}
... on MenuRecord {
id
}
... on LearningResourceRecord {
id
}
... on HomeRecord {
id
}
... on ExhibitionRecord {
id
}
... on EventRecord {
id
}
}
children {
id
menuId
json
plaintext
position
title
urlOverride
reference {
... on PressReleaseRecord {
id
}
... on PostRecord {
id
}
... on PageRecord {
id
}
... on MenuRecord {
id
}
... on LearningResourceRecord {
id
}
... on HomeRecord {
id
}
... on ExhibitionRecord {
id
}
... on EventRecord {
id
}
}
children {
id
menuId
json
plaintext
position
title
urlOverride
reference {
... on PressReleaseRecord {
id
}
... on PostRecord {
id
}
... on PageRecord {
id
}
... on MenuRecord {
id
}
... on LearningResourceRecord {
id
}
... on HomeRecord {
id
}
... on ExhibitionRecord {
id
}
... on EventRecord {
id
}
}
children {
id
menuId
json
plaintext
position
title
urlOverride
reference {
... on PressReleaseRecord {
id
}
... on PostRecord {
id
}
... on PageRecord {
id
}
... on MenuRecord {
id
}
... on LearningResourceRecord {
id
}
... on HomeRecord {
id
}
... on ExhibitionRecord {
id
}
... on EventRecord {
id
}
}
}
}
}
}
}
Iâm hoping to simplify it to something like:
query MyQuery {
allMenus(filter: { parent: { exists: "*" } }) {
{{subQuery}}
children {
{{subQuery}}
children {
{{subQuery}}
}
}
}
Is something like that possible?