Yes, Custom DQL Resolvers to the rescue:
Add this to your GraphQL schema:
type Query {
queryGuestsByMinVisits(visits: Int!): [Guest] @custom(dql: """
query q($visits: int) {
var(func: type(Guest)) {
{
visitCount as count(Guest.guest_visit_dates)
}
}
queryGuestsByMinVisits(func: uid(visitCount)) @filter(ge(val(visitCount), $visits)) {
id: uid
guest_name: Guest.guest_name
guest_visit_dates: Guest.guest_visit_dates
guest_visit_count: val(visitCount)
}
}
"""
)
}
Then query like this:
query {
queryGuestsByMinVisits(visits: 2) {
id
guest_name
guest_visit_dates
guest_visit_count
}
}
I’ve pushed all this up to my sandbox: https://github.com/matthewmcneely/dgraph-v21.03-sandbox/tree/explanations/lamda-query-resolver